4.数据库级别和数据表级别SQL语句
数据库级别
SHOW DATABASES;   显示所有的数据库
        CREATE DATABASE 数据库名称;   新建数据库
        CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;  设置数据库的编码方式为utf8(推荐使用)
        CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; 设置数据库的编码方式为gbk
        USE 数据库名称;                进入数据库
        drop database 数据库名称;   删除数据库
数据表级别
 show tables;
        desc tb1;   查看数据表的基本结构信息
        delete from 表名;     清除表内容,自增列表在原来的基础上增加
        truncate table 表名;  清除表内容,速度快,自增列表回到原点从新开始增加
        drop table 表名;      直接删除表
        select * from 表名;  查找数据表中的数据
创建数据表
1.create table tb1(nid int, name varchar(10));
2.create table 表名(
                    列名 类型 是否可以为空
                    列名 类型 是否可以为空
                )engine=innodb default charset=utf8;
       engine=innodb 数据库引擎  default charset=utf8;
charset=utf8;设置表级别的编码方式
  # innodb支持事务,原子操作,回滚
            一个事务中的所有任务都要完成后,事务才算完成。如果一个完成而其他的没有完成,就会发生回滚,整个事务回到初始状态
            举例:银行转钱
#null 数据可空 not null数据不可空
a. 默认值
创建列时,可以指定数据的默认值,当插入时如果没有主动设置,则自动添加默认值
create table tb1{ nid int not null default 2, 设置nid列的值不可为空,如果不进行设置,值默认为2 num int not null, 设置num列的值不可为空 }engine=innodb default charset=utf8;
b.自增列
(一张表只能有一个,数字,必须是索引-主键)
 自增列必须为表格索引主键,因此要在后面加上primary key
            在创建表时,在某一列的后面添加auto_increment,该列的数值就是自增的
create table tb1{ nid int not null auto_increment primary key,设置该列的值不为空,且数值自增 }engine=innodb default charset=utf8;
c.主键索引
一个数据表只能由一个主键索引,创建表的时候在列的后面加上primray key,该列就是表的主键,唯一不能重复,不能为null,- 一般情况下,自增列设置主键
添加主键的方法:
nid int auto_increment primary key,
create table xxx( nid.... auto_increment primary key, .... );
或者:
alter table 表名 add primary key(列名)
删除主键:
alter table 表名 drop primary key;
或者:
alter table 表名 modify 列名 int,drop primary key;
如下是创建一个数据表的去边写法:
create table tb5( nid int not null auto_increment primary key, name varchar(16), age int default 19 )engine=innodb default charset=utf8;
外键:
两张表建立约束,来限制从表某一列插入数据值必须为主表某列中已经存在的数据
从表:需要被限制的表格
            主表:被其他表格引用的表
            注意使用外键时,被限制的列和限制列中的数据类型要相同
增加外键:
alter table 从表 add constraint 外键名称(一般是FK_从表_主表) foreign key 从表(外键字段 ) references 主表(主键字段)
或者在创建表时添加外键:
onstraint FK_从表_主表 foreign 从表(外键字段 ) references 主表(主键字段 #添加语句,创建两表之间的外键来约束class的添加值
删除外键:
alter table 从表 drop foreign key 外键名称
举例如下:
1. create table userinfo( -> student_num int not null auto_increment primary key, -> age int, -> class int)engine=innodb default charset=utf8; 2.create table class_info( -> nid int not null auto_increment primary key, -> class varchar(20))engine=innodb default charset=utf8; 给表userinfo 中的class列限制插入值为class_info中的数据。就需要使用外键: alter table userinfo add constraint FK_userinfo_class_info foreign key userinfo(nid) references class_info(nid);
或者直接创建表1时添加外键:
create table userinfo(
            -> student_num int not null auto_increment primary key,
            -> age int,
            -> class int,
            -> constraint FK_userinfo_class_info foreign key (class) references class_info(class)  #添加语句,创建两表之间的外键来约束class的添加值
            )engine=innodb default charset=utf8;
修改表结构,添加列,删除列,修改列:
        添加列:alter table 表名 add 列名 类型
        删除列:alter table 表名 drop column 列名
        修改列:
                alter table 表名 modify column 列名 类型   (只能改类型)
                alter table 表名 change 原列名 新列名 类型   (可以修改列名和类型)
        添加,删除外键,主键:
        修改默认值: ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;
        删除默认值:ALTER TABLE 表名 ALTER 列名 drop default;
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号