基本语法
查看数据库 show databases;
使用数据库 use school;
查看表 show tables;
创建表 create table student (id int primary key auto_increment,name char(5)) charset=”utf8”
删除表 DROP TABLE student;
查看表结构 DESC student;
增加数据 insert into person(name,age) value (“小刘”,18);
查询数据 select * from person 查看所有字段数据
Select name from person; 查询当前表中name字段的所有数据
Select name from persion where type = “s” order by id desc 查 询所有类型为s的数据,并以 id倒序排列
Select count(id) from teacher 查看teacher中总数据条数
用户管理
设置用户密码
SET PASSWORD FOR root@localhost=PASSWORD(“1111”);
查看用户名密码
SELECT USER,host FROM mysql.user\G;
数据修改
表
修改表名 ALTER TABLE studebt RENAME students;
字段
添加字段
ALTER TABLE students ADD COLUMN phone char(22);
删除字段
ALTER TABLE students DROP COLUMN phone;
修改字段类型
ALTER TABLE students MODIFY COLUMN phone char(32);
修改字段名称和类型
ALTER TABLE students CHANGE COLUMN phone telephone char(22);
值
UPDATE students SET name=”老刘”WHERE id=1; 没有WHERE会默认修改 所有
DELETE FROM person WHERE name<>”老表”; 删除person表中名为老表 的字段
移动字段
ALTER TABLE students CHANGE phone char(32) AFTER name; 将phone字段 移动到name字段之后
数据库用户权限命令
创建用户
CREATE USER xl@localhost;
创建用户并添加密码
CREATE USER xl@localhost identified by ”1234”;
创建用户允许远端登录
CREATE USER [email protected] identified by ”1234”; 允许10.10.65.250以 xl的用户登录mysql
CREATE USER [email protected].% identified by ”1234”; 允许10.10.65.0 ~~ 10.10.65.255以xl的用户登录mysql
CREATE USER [email protected]5_ identified by ”1234”; 允许10.10.65.250 ~~ 10.10.65.255以xl的用户登录mysql
删除用户
DROP USER [email protected]
常规权限操作
Grant select on bian.person to laobian@localhost 将bian数据库 的person表的查询权限授权给以localhost登录laobian用户
Grant insert on bian.person to laobian@localhost 将bian 数据库 的person表的插入权限授权给以localhost登录老边用户
Grant delete on bian.person to laobian@localhost 将bian数据库 的person表的删除权限授权给以localhost登录laobian用户
Grant update on bian.person to laobian@localhost 将bian数据库 的person表的更新权限授权给以localhost登录laobian用户
Grant select(id,name) on bian.person to laobian@localhost 将bian 数据库的person表的id和name字段的查询权限授权给以localhost登录 laobian用户
Grant select,insert,delete,update,on bian.person to laobian@localhost 将bian数据库中的person表的增删改查的权限授权给以localhost登录 lapbian用户
数据库的关联查询
SELECT * FROM 表名 WHERE 字段名=”条件”;
两表联查:
SELECT * FROM teacher WHERE project = (SELECT label FROM classes WHERE id = 1);
SELECT name,label,description FROM teacher ,classes WHERE teacher.project = classes.label;
别名查询:
SELECT t.name AS username,
c.label AS project,
c.description AS ds
FROM
teacher AS t ,
classes AS c
WHERE
t.project = c.label;
JION 查询
Join 左边为左表
Join 右边为右表
Inner为内关联查询 取两表交集
SELECT * FROM student INNER JOIN home WHERE home.id = student_id
左关联查询 所有学生对应的宿舍
SELECT * FROM student LEFT JOIN home ON home.id = student_id
右关联查询 所有宿舍对应的学生
SELECT * FROM student RIGHT JOIN home ON home.id = student_id
模糊查询 LIKE
SELECT *FROM student WHERE name LIKE “李%”
索引
索引分类:
普通索引:就是一个普通的索引 可以空 可以重复
ALTER TABLE teacher ADD INDEX(COLUMN);
唯一索引:可以空,不可以重复
ALTER TABLE teacher ADD UNIQUE(column) 句式 (字段)
ALTER TABLE teacher ADD PRIMARY KEY(COLUMN)
主键索引 不可为空 不可以重复
ALTER TABLE teacher ADD PRIMARY KEY(COLUMN)
多列索引
ALTER TABLE teacher ADD INDEX (column1,column,column3)
试图
试图的设立
需求:
查询所有姓孙的女生
Select * from student where name like “孙%”;
创建:将该查询形成试图
CREATE VIEW student AS (select * from student where name like ”sun%”);
查看所有试图
SHOW TABLE STATUS WHERE COMMENT = “view”;
删除试图
DROP VIEW student_sun;
触发器
创建触发器
DELIMIER || 声名 mysql 的结束符,默认结束符是;
CREATE TRIGGER tb2_auto_add AFTER INSERT
ON tb1 FOR EACH ROW BEGIN
insert into tb2(name,age) value ("老王",18);
end
||
DELIMITR ;声名mysql的结束符 ,默认结束符数;
触发器的语句分析
CREATE TRIGGER tb2_auto_add AFTER INSERT
ON tb1 FOR EACH ROW
BEGIN
insert into tb2(name,age) value ("老王",18);
end
create 创建
trigger 触发器
tb_auto_add 触发器名称.必须有意义
AFTER 触发时间
AFTER 在触发时间之后
BEFOR 在触发器之前
INSERT 触发的条件
UPDATE 更新事件
DELETE 删除事件
INSERT 插入事件
EACH ROW 任意一行
BEGIN 开始编写事件
insert into tb(name,age)value("老王",18), 触发的时间
END 触发时间结束
查看触发器
触发器信息都存放在information_schema 数据库当中的trigger表中
select * frominformation_schema.triggers;
删除触发器
drop trigger tirggerName