建立数据库mysql
create database 数据库名
复制代码
显示全部的数据库sql
show databases
复制代码
输入这个命令一下全部的sql语句的命令都将针对这个数据库数据库
use 数据库名
复制代码
查询某个数据库数据库安全
show databases like 要查询的数据库的名字
复制代码
删除某个数据库spa
drop database 要删除的数据名
复制代码
建立一个表命令行
create table 表名 (字段名1 数据类型,字段名2数据类型,...,字段名n 数据类型)
复制代码
显示数据库中全部的表code
show tables
复制代码
查看表中的全部字段以及字段内的数据类型索引
desc 表名
复制代码
修改表的事务
如下为修改表的命令行:字符串
添加字段
alter table 要修改表的名字 add column 字段名 数据类型;
复制代码
修改字段
alter table 要修改的表的名字 change column 要修改的字段名 修改后的字段名 修改后的该字段的数据类型
复制代码
修改表中的某个字段类型
alter table 表名 modify 要修改的字段名 新的数据类型
复制代码
删除表中的某个字段
alter table 表名字 drop column 要删除的字段名
复制代码
修改表的名字
alter table 旧表名 rename to 新表名字
复制代码
删除表
drop table 表名
复制代码
主键约束:
若是有某个字段添加了那么这个字段的数据不能有重复不能为NULL
经过建立表时去添加主键约束
第一种经过建立表时去添加主键约束的方法:
create table 表名 (字段名1 数据类型 ,字段名2 数据类型,...,字段名n 数据类型 primary key)
//像这样咱们给某个字段的数据类型后加上primary key那么该字段就添加了主键约束
第二种经过建立表时去添加主键约束:
create table 表名 (字段名1 数据类型 ,字段名2 数据类型,...,字段名n 数据类型) primary key(字段名)
//像这样primary key(字段名) 括号里的字段就会被添加上主键约束括号里能够写多个字段用逗号隔开这样叫作复合主键
复制代码
经过修改表时去添加主键约束:
alter table 表名 add primary key(字段名)
//像这样咱们就给primary key(字段名)括号里的字段添加了主键约束
复制代码
外键约束:
外键约束主要用于两个表直接的链接,好比咱们有a和b两张表咱们能够经过a表中的外键去查询b表中的主键从而查询到咱们须要的数据。
在建立表的时候添加外键约束。
create table 表名 (字段名1 数据类型,字段2 数据类型,...,字段n 数据类型,constraint 外键名 foreign key (要添加外键的字段名) references 链接的表名 (链接的表中的字段该字段必须为主键))
复制代码
在修改表时添加外键约束
alter table 表名 add constraint 外键名 foreign key (字段名) references 链接的表名 (链接的表中的字段该字段必须为主键)
复制代码
在修改表的时候删除外键约束
alter table 表名 drop foreign key 外键名
复制代码
惟一约束:
惟一约束主要帮助咱们去建立某个字段的时候这个字段里的数据是惟一的没有重复的可是能够有空值注:可能会与主键约束混淆可是一个表中能够有多个惟一约束,可是不能有多个主键约束,另外惟一约束的字段中的数据能够有空值可是主键约束的字段的数据中不能有空值
在建立表时添加惟一约束:
create table 表名 (字段1 数据类型,字段2 数据类型,...,字段n 数据类型 unique)
//像这样给某个字段的数据类型后面加上unique那么这个字段就添加了惟一约束
复制代码
在修改表时添加惟一约束:
alter table 表名 add consteraint约束名 unique (要添加惟一约束的字段名)
复制代码
删除惟一约束:
alter table 表名 drop index 字段名
复制代码
检查约束:
检查约束主要用于检查表某个字段的数据中是否知足断定条件
在建立表时添加检查约束
create table 表名 (字段1 数据类型,字段2 数据类型,...,字段n 数据类型,check (对某个字段的约束的限定条件好比:id>1))
复制代码
在修改表时添加检查约束:
alter table add cpnstraint 检查约束名 check (对某个字段约束的限定条件)
复制代码
删除检查约束:
alter table 表名 drop constraint 检查约束名
复制代码
默认值约束:
默认值就是咱们在给某个字段添加数据时没有赋值或者它的值为空那么它的值为默认值
在建立表的时候添加默认值约束
create table 表名 (字段1 数据类型,字段2 数据类型,...,字段n 数据类型 default 默认值)
//像这样咱们给某个字段的数据类型后面加上了默认值约束那么若是它的某条数据为空的时候它的值为默认值
复制代码
在修改表的时候添加默认值约束
alter table 表名 change column 字段名 default 默认值
复制代码
删除默认值约束
alter table 表名 change column 字段名 字段名 数据类型 default null
复制代码
非空约束
若是咱们给某个字段添加了非空约束那么这个字段里的数据就不能有空值不然会报错
在建立表时添加非空约束
create table 表名 (字段1 数据类型,字段2 数据类型,...,字段n 数据类型 not null)
//像这样给某个字段的数据类型
复制代码
在修改表时添加非空约束:
alter table 表名 change column 字段名 字段名 数据类型 not null
复制代码
删除非空约束:
alter table column 字段名 字段名 数据类型 null
复制代码
查看表中全部的约束
show create table 表名
复制代码
查询数据:
查询表中全部的数据
select * from 表名
复制代码
查询某个字段中的数据
select 字段名 from 表名
复制代码
查询某个字段的数据并不显示重复的
select distnct 字段名 from 表名
复制代码
给字段或者表取别名
select 字段名/表名 as 别名
复制代码
查询表中x行至y行的数据
select * from 表名 limit x,y
//x和y是数字
复制代码
只查找知足限制条件的数据
select * from 表名 where 限制条件 好比id=1
复制代码
插入数据
往表中插入数据
insert into 表名 (字段名1,字段名2) values (数据1 ,数据2)
//括号中的数据1就对应字段名1,数据2 就对应字段名2
复制代码
往表中插入数据
insert into 表名 set 字段名1=数据1,字段名2=数据2
复制代码
查询a表的数据而后插入到b表中
insert into b表名 (字段名1,字段名2) select 字段名1,字段名2 from a表名
复制代码
修改数据:
update 表名 set 要修改的字段=新值
//这个必定要结合where限定条件来结合使用不然会把字段里的数据所有修改为一个
复制代码
删除数据
delete from 表名 where 限制条件
//这个命令若是不结合限制条件去结合使用那么会清空整张表
复制代码
简单来讲视图就是一条select语句进行查询后的一个结果集,可是视图也不形同于表能够
建立视图
create view 视图名 as select查询语句
复制代码
查询视图
desc 视图名
复制代码
修改视图
//第一种修改视图的方式
alter view 视图名 as select查询语句
//第二种修改视图的方式
update 视图名 set 字段名=新值 where 限制条件
复制代码
删除视图
drop view 视图名
复制代码
咱们上面的sql语句等都是对于单个表的操做而存储过程是为了完成处理多条sql语句完成对多表的操做
修改结束字符
delimter 结束字符
//修改结束字符是由于咱们的sql语句默认是以;进行结尾的可是咱们的存储过程能够说是多条sql语句的一个集合,若是不改变结束字符那么运行时会默认只执行第一条sql语句因此咱们要改变结束字符,可是存储过程当中的sql语句仍以;结尾。
复制代码
建立存储过程
create procedure 存储过程名(参数 参数类型) begin 多条 duosql语句 end
复制代码
修改存储过程
存储过程其实是不存在修改的,咱们能够先删除原存储过程再以相同的命名新的存储过程
删除存储过程
drop procedure 存储过程名
复制代码
调用存储过程
call 存储过程名
复制代码
触发器就是一种特殊的存储过程,不一样的是存储过程须要call调用才可以使用,而触发器不须要,触发器有两种类型before和after类型,before是在激活触发器的语句以前启动触发器,after是在激活触发器的sql语句以后启动触发器,可以激活触发器的语句有三种,insert ,delete,undate这三种语句
建立触发器
create tigger 触发器名 触发器类型 激活触发器的是哪一种语句 on 表名 for each row 启动触发器时要执行的sql语句;
复制代码
修改触发器
一样也不存在修改触发器若是要修改触发器可经过删除触发器而后再以相同的名字命名
删除触发器
drop trigger 触发器名
复制代码
索引就至关于时表的目录,咱们在查询数据以前能够根据目录再去根据目录进行对数据的查询
建立索引
create table 表名 (字段1 数据类型,字段2 数据类型,...,字段n 数据类型,index(字段名));
//这行命令用于建立通常索引
create table 表名 (字段1 数据类型,字段2 数据类型,...,字段n 数据类型,unique(字段名))
//这行命令用于建立惟一索引
复制代码
查看表中的索引
show index from 表名
复制代码
删除索引
drop index 索引名 on index 表名
复制代码
在mysql中的平常管理中咱们应该定义一些有权限的用户能够访问来保护数据的安全
建立用户
create user "用户名"@"localhost" inentifified by "密码"
复制代码
修改用户名
rename user 旧用户名@"localhost" to 新用户名@"localhost"
复制代码
修改密码
set password for "用户名"@"localhost"=password("新密码")
复制代码
删除用户
drop user "用户名"@"localhost"
复制代码
事务是最小的单位不可再分,事务只和insert,update,delete这三种语句有关,也就说当咱们输入这三种语句中的其中一个就表示自动开启了一个事务,当语句执行成功表示自动关闭了事务
手动开启事务:
begin
复制代码
事务的提交
commit
复制代码
事务的回滚,表示又回到了事务的起点
rollback
复制代码
整数类型又分为如下几种
TINYINT (显示长度)
很小的整数,存储空间只占一个字节,这种整数类型他的数值范围只能是:-128~127这个区间
SMALLINT (显示长度)
小的整数,存储空间只占两个字节,这种整数类型他的数值范围只能是:-32768~32767这个区间
INT (显示长度)
正常的整数,存储空间只占四个字节,这种整数类型他的整数范围只能是:-2147483648~2147483647这个区间
bigINT (显示长度)
大整数,这种整数类型他的整数范围只能是:-2147483648~2147483647这个区间
小数类型又分为如下几种
float
单精度浮点数,存储空间占4个字节
double
双精度浮点数,存储空间占8个字节
DECIMAL (M, D)
定点数,浮点数在数据中存储的是近似值而定点数存储的是精确值,m为定点数的长度包括小数点前的数,d为小数点后的数的长度。存储空间占m+2个字节
日期时间类型又分为如下几种
year
year类型只用来表示年,存储空间为1个字节
能够以4位字符的形式去插入或者4位数字的形式去表示范围为1901至2155 'xxxx',xxxx
能够以2位字符的形式去插入或者以两位数字的形式去插入
time
time类型用来表示时分秒,存储空间占3个字节,再去给time类型的字段赋值时要这样:"xx:yy:mm",xx表示多少时,yy表示多少分,mm表示多少秒
date
date类型表示日期也就是x年x月x日,存储空间占3个字节,在去给date类型赋值的时候要这样:"xxxx:yy:dd",xxxx表示哪一年,yy表示几月,mm表示几号。
datetime
datetime类型表示具体的时间也就是x年x月x日x时x分x秒,存储空间占8个字节,在去给datetime类型赋值的时候要这样:"xxxx-yy-dd ss :ff:mm",xxxx表示哪一年,yy表示几月,dd表示几号,ss表示多少时,ff表示多少分,mm表示多少秒。
字符串类型又分为如下几种
char (m)
固定长度可是,不是二进制字符类型,括号里的m是该数据类型中能够存储的字符长度可是不能够超过255,存储空间是m个字节
varchar (m)
固定长度可是,不是二进制字符类型,括号里的m是该数据类型中能够存储的字符长度可是不能够超过255,存储空间是字符的长度也就是总共有多少个字符+1个字节
TINYTEXT
短的,非二进制字符串类型,他的存储空间为字符串的长度+1个字节,可是字符串的长度不能大于256.
TEXT
比短的长一点的,非二进制字符串类型,他的存储空间为字符串的长度+2个字节,可是字符串的长度不能大于2的16次方
MEDIUMTEXT
比上一个长一点的,非二进制字符串类型,他的存储空间为字符串的长度+3个字节,可是字符串的长度不能大于2的24次方
LONGTEXT
稍长一点的,非二进制字符串类型,他的存储空间为字符串的长度+4个字节,可是字符串的长度不能大于2的32次方
数据库存储引擎是数据库的底层软件组件,数据库管理系统使用存储引擎进行建立查询和更改数据的操做,不一样的存储引擎提供不一样的存储机制,索引技巧等。
mysql默认从存储引擎是innoDB ,由于innoDB是事务型数据库的首选引擎
上边写过的查询主要是用于查询单个表的,接下来是链接查询的也就是好比有两张表咱们能够经过a表去查询b表。
内链接查询
内链接查询就是能够同时查询多张表
select * from 表1名 join 表2名 where 限制条件
//限制条件必定要是:表名.字段名,只要使用join关键字进行对表名与表名链接不只能够两张还能够查询多张表
复制代码
外链接查询
外链接查询又分为左链接和右链接
左链接
右链接