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;

 

4.数据库级别和数据表级别SQL语句

上一篇:可持久化Trie树


下一篇:php的错误级别