1.创建表:
create database_name;
use database_name;
Create tabletable_name(
Id int(11),
Name varchar(25),
Salary float
);
2.show tables; 显示当前数据库的表
3.单字段主键,设置主键有两种情况。 主键唯一且不能为空
a.在字段后加 primary key
Create table table_name2(
Id int(11) primary key,
Name varchar(25),
Salary float );
b. 在定义完所有列之后指定主键 后不在加 逗号
Create table table_name(
Id int(11),
Name varchar(25),
Salary float ,
Primary key(id)
);
4.多字段联合做主键
Primary key(字段1,字段2)
5.外键约束 ,一个表的外键可以为空,或为等于另一个表主键的某个值。外键可以是一列或多列。一个表可以有多个外键。
外键队应的是参照性完整性,外键可以不是本表的主键,但对应另外一个表的主键。外键的作用是保证引用的完整性,定义外键后,不允许删除在另一个表中具有关联的行。
主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。
从表(字表):对于两个具有关联关系的表而言,相关联字段中外键所在的那本表即是从表。 语法格式如下:
[constraint <外键名>] foreign key 字段名1 [ , 字段名2 , …] references <主表名> 主键列1 [ , 主键列2,….]
“外键名”,一个表不能有相同的外键名,“主键列”,主表中的主键列或者列组合
6.非空约束:指字段的值不能为空。
语法规则: 字段名 数据类型 not null
7.使用唯一性约束
语法规则:a 在列后指定唯一性约束。 字段名 数据类型 unique
b在定义完所有列后指定唯一约束 [constraint <约束名>] unique(<字段名>)
8.使用默认约束
语法规则: 字段名 数据类型 default 默认值
9.设置表的属性值自动增加
a.默认的,在mysql中auto_increment 的初始值为1,每新增一条记录,字段值自动加一。
b.一个表只能有一个字段使用auto_increment约束,且该字段必须为主键的一部份。
c.auto_increment约束的字段可以是任何整数类型(tinyint,smallint,int ,bigint)
语法规则:字段名 数据类型 auto_increment
10.插入记录
Insert into 表名 (列名1,列名2,…..) values( ‘ 列1值 ’,’列2值’),(),(),…;
或 insert into 表名 values (‘字段1’,’字段2’),(),()…;
varchar 用单引号
Insert 不是SQL的标准写法,其他数据库可能不支持
11.查看所有记录 select * from 表名;
12.查看表结构 describe 表名;可简写为 desc 表名;
Null:表示该列是否可以储存null
Key: 表示该列是否编制索引。
a. pri表示该列是表主键的一部份;
b. uni表示该列是unique索引的一部份;
c. mul表示在列中某个给定值允许出现多次
Default:表示该列是否有默认值,如果有的话值是多少
Extra:表示可以获取的与给定列有关的附加信息,列如auto_increment等
13.查看表详细结构 show create table 表名;
show create table \G结果更直观
修改数据表 : alter table 语句
14.alter table 旧表名 rename [to] 新表名 修改表名
15.alter table 表名 modify 字段名 数据类型 ; 修改字段的数据类型
16.Alter table 表名 change 旧字段名 新字段名 新数据类型。
新数据类型不能为空,如果不想换,可以和原来一样。 修改字段名
Change 也可以只修改数据类型,实现和modify同样的效果,方法是将sql中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。
17.添加新字段 alter table 表名 add 新字段名 数据类型 [约束条件] [first | after 已存在的字段名]
18. 删除字段 alter table 表名 drop 字段名
19.修改字段的排列位置 alter table 表名 modify <字段1> <数据类型> first | after <字段2> ?数据类型可以变!1
20. 更改表的存储引擎 alter table <表名> engine = <更改后的存储引擎名>
21.删除表的外键约束 alter table <表名> drop foreign key <外键约束名>
22.删除没有被关联的表 drop table [if exists]表1,表2,…表n
23.删除被其他表关联的主表。如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。如果必须要删除,可以先删除子表,再删除父表。或将关联的表的外键约束条件取消,然后就可以删除父表。
Alter table 子表 drop foreign key 外键名;
Drop talbe 父表;
24.外键约束不能跨引擎使用,所以存储引擎的选择也不完全是随意的。
25.在mysql中auto_increment 的初始值是1,每增加一条记录,字段值自动加1。设置自增属性时,可以指定第一条记录的自增字段的值,这样记录将从新插入的记录的自增字段值开始递增。