码迷,mamicode.com
首页 > 数据库 > 详细

Python学习—数据库篇之SQL语句

时间:2019-03-07 00:33:08      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:not   schema   hid   primary   报错   注意   数据库   important   lap   

一、数据库级别

1.显示数据库

show databases;

默认数据库:
  mysql - 用户权限相关数据
  test - 用于用户测试数据
  information_schema - MySQL本身架构相关数据

2.创建数据库

# utf-8  (推荐使用)
CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
 
# gbk
CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

3.删除数据库

drop database 数据库名称;

4.使用数据库

use 数据库名称;

二、表级别

1.显示表

show tables;     ---显示表
desc 表名;       ---显示表字段

2.创建表

create table 表名(
    列名  类型  是否可以为空,
    列名  类型  是否可以为空
)ENGINE=InnoDB DEFAULT CHARSET=utf8

-- InnoDB为数据库引擎的一种,支持事务操作
技术图片
是否可空,null表示空,非字符串
       not null    - 不可空
       null        - 可空
是否可以为空
技术图片
创建列时可以指定默认值,当插入数据时如果未主动设置值,则自动添加默认值
            create table tb1(
                nid int not null defalut 2,
                num int not null
            )
默认值
技术图片
自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列)
            create table tb1(
                nid int not null auto_increment primary key,
                num int null
            )
            或
            create table tb1(
                nid int not null auto_increment,
                num int null,
                index(nid)
            )
            注意:1、对于自增列,必须是索引(含主键)。
                 2、对于自增可以设置步长和起始值
                     show session variables like auto_inc%;
                     set session auto_increment_increment=2;
                     set session auto_increment_offset=10;

                     shwo global  variables like auto_inc%;
                     set global auto_increment_increment=2;
                     set global auto_increment_offset=10;
自增
技术图片
 主键,一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。
主键的好处:约束,加速查找
            create table tb1(
                nid int not null auto_increment primary key,
                num int null
            )
            或
            create table tb1(
                nid int not null,
                num int not null,
                primary key(nid,num)
            )
主键
技术图片
外键,一个特殊的索引,只能是指定内容
            creat table color(
                nid int not null primary key,
                name char(16) not null
            )

            create table fruit(
                nid int not null primary key,
                smt char(32) null ,
                color_id int not null,
                constraint fk_cc foreign key (color_id) references color(nid)
            )
外键

外键示例:创建一张学生信息表和一张班级信息表,将学生表中的class_no和班级表中的nid相关联

技术图片

技术图片

技术图片

技术图片

建立外键约束

技术图片

相当于将学生表中的class_no和班级表中的nid约束起来

技术图片

当再向student表中插入数据时,如果class_no不在class表的nid的值域内,则报错

技术图片

3.删除表

drop 表名;       ---直接删除表
delete from 表名;  ---清空表内容
truncate table 表名; ---清空表内容,速度快,有自增时清空表后插入数据会重新开始编号

4.查询表

select * from 表名;  ----查询表内容

5.修改表

添加列:alter table 表名 add 列名 类型
删除列:alter table 表名 drop column 列名
修改列:
        alter table 表名 modify column 列名 类型;  -- 类型
        alter table 表名 change 原列名 新列名 类型; -- 列名,类型
  
添加主键:
        alter table 表名 add primary key(列名);
删除主键:
        alter table 表名 drop primary key;
        alter table 表名  modify  列名 int, drop primary key;
  
添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键:alter table 表名 drop foreign key 外键名称
  
修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

 

Python学习—数据库篇之SQL语句

标签:not   schema   hid   primary   报错   注意   数据库   important   lap   

原文地址:https://www.cnblogs.com/cdc1216/p/10486955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!