SQL
SQL是结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
(下面用CMD窗口打开mysql来创建表)
常用命令
登录MYSQL
mysql -u root -p //登录mysql root超级管理员 最高权限用户 输入mysql密码,进入mysql。
查询当前数据库
show databases; //查询所有数据库。(注意:不要胡乱删除数据库,除非你要删库跑路)
创建数据库
create database 数据库名;
创建表
use 库名; //切换到指定数据库。
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
desc 表名; //查询表结构。
添加表数据
insert into subject (列名1,列名2,列名3) values(数据1,数据2,数据3); //添加表数据。
select * from 表名; //查询表中所有信息。
类型
属性
MYSQL数据库列属性主要有:NULL/NOTNULL,DEFAULT,AUTO_INCREMENT,ZEROFILL,PRIMARY KEY,COMMENT等.
NULL/NOT NULL:空值, 设置列属性为空或不空。
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 NOT NULL/NULL [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
DEFAULT:默认值,可以在一开始就制定好,在需要真实数据的时候,用户可以选择性的使用默认值。
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 DEFAULT ''自定义默认值'
) [ 表类型 ] [ 表字符集 ] [注释] ;
AUTO_INCREMENT:自增长当对应的字段,不给值,或者给默认值,或者给NULL的时候,会自动的被系统触发,系统会从当前字段中已有的最大值再进行+1操作,得到一个新的不同字段,当给值后,以给的值优先。一张表最多只能有一个自增长。
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 AUTO_INCREMENT PRIMARY KEY [注释] //任何一个字段要做自增长必须前提是本身是一个索引
) [ 表类型 ] [ 表字符集 ] [注释] ;
PRIMARY KEY:主键约束,主键对应的字段中的数据不允许重复。
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] PRIMARY KEY [注释] ,
) [ 表类型 ] [ 表字符集 ] [注释] ;
ALTER TABLE 表名 ADD PRIMARY KEY( 主列名 )//添加主键约束
ALTER TABLE 表名 DROP PRIMARY KEY //删除主键,如果主键有自增长(AUTO_INCREMENT)属性,先修改去掉自增长,再删除主键。
FOREIGN KEY:外键约束,是实现表与表之间的约束,从表的字段值必须在主表中。存在外键约束毕竟是一个约束,只是保证数据完整性的一个手段。
加入外键的条件:
- 两个表有相同属性字段,取值范围相同;
- 外键在主表中是主键或者是唯一字段;
- 外键可以是多个字段的组合。
CREATE TABLE [ IF NOT EXISTS ] `主表名` (
`字段名1` 列类型 [ 属性 ] PRIMARY KEY [注释] ,
) [ 表类型 ] [ 表字符集 ] [注释] ;
CREATE TABLE [ IF NOT EXISTS ] `从表名` (
`字段名1` 列类型 [ 属性 ] ,//与主表的列属性一致;
FOREIGN KEY (从表的字段名) REFERENCES 主表名(主表的字段名) /*/外键 从表的字段名 参照 主表中的 字段名
) [ 表类型 ] [ 表字符集 ] [注释] ;
CREATE TABLE [ IF NOT EXISTS ] `从表名` (
`字段名1` 列类型 [ 属性 ] referencesREFERENCES 主表名(主表字段名1) //这种也可以,
) [ 表类型 ] [ 表字符集 ] [注释] ;
ALTER TABLE 从表名 ADD CONSTRAINT 外键名 FOREIGN KEY(从表中得到字段名) REFERENCES 主表(主表中的字段名); //外键就是从表参照主表的列
ALTER TABLE 从表名 DROP FOREIGN KEY 外键约束名称 ; //删除外键。
COMMENT:注释的意思,可以注释列,也可以注释表。
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] COMMENT ''自定义注释名'
) [ 表类型 ] [ 表字符集 ] COMMENT='自定义注释名' ;