目录:导读
一、数据库基础
1、用户
a.增
创建用户:
create user ‘用户名’@‘服务器的ip地址’ identified by ‘密码’;
数据库ip地址,如果是本地,则是loaclhost
b.删
drop user ‘用户名’@‘ip地址’;
c.改
修改用户名:
rename user ‘用户名’@‘IP地址’ to ‘新用户名’@‘IP地址’;
修改密码:
(低级版本)
set password for ‘用户名’@‘IP地址’=password(‘新密码’);
(高级版本)
alter user ‘xiaoming'@'localhost' identified by ‘654321';
d.查
查看数据库:
show databases;
切换库:
use 数据库名;
查看数据表:
show tables;
查询数据表数据:
select * from 数据表名;
2、权限
a.单词
授权(grant),回收(revoke),权限(privilege)
b.授予权限:
grant 权限名 on 库名.表名 to ‘用户名’@’IP地址’;
all privilege:一次授予所有权限
grant all privileges on *.* to ‘用户名’@’IP地址’;
授予 所有数据库的 所有表的 所有权限
c.刷新权限:
flush privileges;
d.查看权限:
查看当前用户权限:
show grants;
查看指定用户权限:
show grants for ‘用户名’@’IP地址’;
e.回收权限:
revoke 权限名 on 库名.表名 from ‘用户名’@’IP地址’;
revoke all on *.* from ‘用户名’@’IP地址’;
回收 所有数据库的 所有表的 所有权限
二、数据库基本语法
1、引擎
查看数据库引擎:
show engines;
临时性修改数据库引擎:
set default_storage_engine = “引擎名”;
两个常用引擎:
myisam:性能好,安全性低
innodb:性能差,安全性高。支持外键,支持事务
2、四大SQL语句
数据定义语句DDL(操作表结构):create、alter、drop、truncate
数据操作语句DML(操作表数据):insert、delete、update、select
数据控制语句DCL:grant、revoke
事务控制语句TCL:begin、commit、rollback
3、DDL
a.数据库
创建数据库:
create database 数据库名;
显示创建的数据库信息:
show create database 数据库名;
删除数据库:
drop database 数据库名;
b.数据类型
①整型:int
②小数:decimal,float
用法:decimal(长度,小数位)
decimal(5,2)范围为:-999.99~999.99
③字符串:char,varchar
char和varchar区别:
char是定长,确定了长度之后,不管存放的数据有没有达到指定长度,都是按照指定的长度长度分配
varchar是不定长,确定了长度之后,如果存放的数据没有达到指定长度,就按照已经使用的长度来分配空间
c.表结构
①增:创建表格
create table 表格名(
字段名 数据类型 【约束条件】,
字段名2 数据类型
)【其他选项(例如储存引擎,字符集等)】;
【 】中的内容选填,中文设置:DEFAULT CHARSET =‘utf8’;
自增:auto_increment ,随着数据的插入,该字段会自动增加
②删:
drop table 表名;
③改:
alter table 表名 操作命令;
其中操作命令包括:
删除字段:drop 字段名;
新增字段:add 字段名 数据类型 约束条件;
修改字段名(可同时修改数据类型):change 旧字段名 新字段名 数据类型/新数据类型;
修改数据类型:modify 字段名 新数据类型;
修改表名:
rename table 旧表名 to 新表名;
alter table 旧表名 rename 新表名;
④查看创建表的详细信息:
show create table 表名;
查看表结构:
desc 表名;
4、DML
a.增(insert)
基本语法:
insert into 表名(字段名 #不填默认为全部) values(数据);
b.删(delete,truncate)
delete删除:delete from 表名;
truncate删除:truncate table 表名;
区别:
truncate可以将自增字段清零,重新开始自增,delete不能清零
c.改(update)
基本语法:
update 表名 set 字段名=新值 where 查询条件;
如果不加查询条件,默认修改字段下的所有的值
替换(replace):
基础语法:
replace into 表名 values(值);
insert,update,replace区别:
insert是插入语句,永远都是在最下面插入新的行,不会对已有数据造成影响;
update是更新语句,是在已有数据的基础上对数据内容做修改;
replace是替换语句,如果原数据已存在则覆盖原数据(类似update,但其字段需要有约束条件),如果不存在则插入新数据(类似insert)
d.查(select)
基本语法:
select 字段名 from 表名 where 查询条件;
别名(as):给字段或者表在查询时设置的一个临时的名字:
SELECT 新表名.字段名1 AS ‘新字段名',新表名.字段名2 AS ‘新字段名2' FROM 表名 AS 新表名;
说明:AS可不填,旧字段名与新字段名用空格隔开即可。如果表名没有设新表名,则“字段名”前面的“新表名.”不填
SELECT name “姓名”,age “年龄” FROM student;
e.综合
①插入其他表的数据:
insert into 表名(字段名) select 查询字段名 from 表名 where 查询条件;
②使用已有表的表结构及数据,创建一个新的表:
CREATE TABLE stu SELECT * FROM student;
③创建一个新的表,只使用已有表的表结构
CREATE TABLE stu2 SELECT * FROM student 查询条件;
其中查询条件为恒假,例如1=2
④数据备份和还原(source):
第一步:新建一个数据库(新建new)
第二步:切换到新建的数据库(use new)
第三步:source 保存的sql文件路径(source d:/test.sql)
三、查询基础操作
1、排序语句
order by
语法:
select 字段名 from 表名 order by 排序字段 排序方式;
asc:升序
desc:降序
默认升序排序
2、关键字
a.limit
作用:限制返回数据的行数
select 字段名 from 表名 limit 起始行下标,行数;
起始行下标默认为0
b.distinct
作用:去重,去掉重复出现的内容,保留其中一份
select distinct 去重字段名 from 表名;
注:空值和NULL是两个概念
3、查询条件
①between…and…:求在某一范围内的值
select 字段名 from 表名 where 查询字段 between 起始范围 and 截止范围;
②like:模糊查询
select 字段名 from 表名 where 查询字段 like 查询内容;
%:表示0个或多个字符
_:表示1个字符
③in:查询字段在指定数据中是否出现
select 字段名 from 表名 where 查询字段 in (值1,值2, 值3);
比较字符:
a.不等于:!=,<>
b.等与:=,,<=> --------->第二个可用于NULL,即<=>NULL等价于is NULL
拓展字符:
a.必须使用rlike操作符
b.范围:[]
[1-5]:表示1-5的范围(即1,2,3,4,5,)
c.‘^’:表示以什么字符开头(用在字符前)
^a :以a开头字符
d.‘ ’ : 表示以什么字符结尾 ( 用在字符后 ) a ’:表示以什么字符结尾(用在字符后) a ’:表示以什么字符结尾(用在字符后)a:以a结尾的字符
四、约束
分类:主键(primary key)、外键(foreign key)、唯一(unique)、非空(not null)、默认值(default)、检查(check)
1、主键(primary key)
定义:同时拥有非空和唯一的性质,在同一张表中只能出现一次
添加主键约束:
(常用)
create table 表名(
字段名 数据类型 primary key
);
(可改主键名)
create table 表名(
字段名 数据类型,
constraint 主键名 primary key(约束字段)
);
(其他)
create table 表名(
字段名 数据类型,
primary key(约束字段)
);
添加主键(表已存在):
alter table 表名 add primary key(字段名);
删除主键:
alter table 表名 drop primary key;
复合主键:将两个以上字段都赋予主键约束
语法:
(加在建表时最后面)
primary key(字段名1,字段名2);
2、唯一(unique)
定义:确保修饰的字段数据内容不能重复
添加:
alter table 表名 add unique(字段名);
删除:
alter table 表名 drop index 字段名;
3、非空(not null)
添加:
alter table 表名 modify 字段名 数据类型 not null;
删除:
alter table 表名 modify 字段名 数据类型;
4、默认值(default)
定义:是指定为空字段的默认内容
删除:
alter table 表名 change 字段名 字段名 数据类型;
添加:
alter table 表名 add 字段名数据类型 default '默认值';
五、总结
在光芒万丈之前,我们都要欣然接受眼下的难堪和不易,接受一个人的孤独和偶尔的无助。
不是井里没有水,而是挖的不够深;不是成功来得慢,而是放弃速度快。得到一件东西需要智慧,放弃一样东西则需要勇气!
如果只有过美好的经历,那么你不会变得勇敢,不要怕前路坎坷,请一直勇敢向前。