增 删 改 查

 SHOW CREATE DATABASE school-- 查看创建数据库语句
 
 SHOW CREATE TABLE  student-- 查看创建表语句

 DESC student -- 显示表结构

 ALTER TABLE student1 RENAME AS teacher-- 修改表名

ALTER TABLE teacher ADD age INT (11)-- 增加表字段

– 修改表的字段

ALTER TABLE teacher MODIFY age VARCHAR(11)-- 修改约束

ALTER TABLE teacher CHANGE age age1 INT(10)-- 修改重命名

ALTER TABLE teacher DROP age1-- 删除表字段

DROP TABLE IF EXISTS teacher -- 删除表(如果表存在再删除)

– 添加外键约束

ALTER	TABLE student1
ADD	CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade`(`gradeid`)

ALTE TABLE 表 ADD CONSTRAINT 约束名 FOREIGN KEY (作为外键的列) REFERENCES 那个表(哪个字段)

– 添加语句
insert into 表名 (字段1,字段2,字段3) values(‘值1’,‘值2’,‘值3’),…

– 修改表
update 表名 set 数据库的列 = value, 数据库的列 = value,… where 条件[ ]

–删除表
delete from 表名 where 条件/
TRUNCATE 表

区别: TRUNCATE 不会影响事务
TRUNCATE 重新设置自增列 计数器会回归
DELETE 自增不会归零

delete删除之后重启数据库 现象:

引擎 innoDB 自增列会从1开始 (存在内存当中 , 断电即失)
MyISAM 继续从上一个自增量开始 (存在文件当中,不会丢失)

– 查询表:
– 查询 SELECT 字段 FROM 表

SELECT * FROM `student`

SELECT * FROM `result`

SELECT `studentname`,`studentno` FROM `student`

– 别名, 给结果起一个名字 AS 可以给字段起别名 也可以给表起

字段名  AS 别名   /   表名  AS  别名

SELECT studentname AS 学名,studentno AS 学号 FROM student AS 学生

– 函数 Concat (a,b)

SELECT CONCAT ('姓名: ',studentname) AS 新名字 FROM `student`

SELECT * FROM result -- 查询全部考试成绩

SELECT `studentno` FROM result

– 去重
SELECT DISTINCT studentno FROM result

SELECT VERSION()-- 查询系统版本

SELECT 100*2-1 AS 计算结果 – 用来计算

– 学生考试成绩+1

SELECT `studentno`,`studentresult`+1 AS '提分后' FROM result 
SELECT `studentno` ,`studentresult` FROM result  
SELECT `studentresult` FROM result 
WHERE studentresult BETWEEN 90 AND 100
SELECT `studentresult`,`studentno` FROM result 
WHERE studentresult>=75 && studentresult <=100 AND `studentno`!= 1000
SELECT `studentno` FROM result
WHERE NOT `studentno`=1001

– 查询姓张的同学 LIKE 是范围匹配 %(代表0到任意个字符) _ (代表一个字符)

SELECT `studentname`,`studentno` FROM student WHERE `studentname` LIKE '张%'

– 查询 1001,1002,1003学号的学生 IN 是具体的一个或者多个值

SELECT `studentno`,`studentname` FROM student WHERE `studentno` IN (1001,1002,1003)

– 查询地址在北京的学生

SELECT `studentno`,`studentname`,`address`FROM student WHERE `address` LIKE '%北京%'

– 查询有出生日期的同学

SELECT `studentno`,`studentname` FROM student WHERE `borndate` IS NOT NULL

– 联表查询
– 查询参加了考试的学生(学号,姓名,科目编号,分数)
– inner join 如果表中至少有一个匹配,就返回行

SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult`
FROM student AS s
INNER JOIN result AS r
ON  s.`studentno` = r.`studentno`

– join (连接的表) on(判断条件) 连接查询
– where 等值查询

– Right join 会从右表中返回所有的值,即使左表中没有匹配

SELECT s.`studentno`,`studentresult`,`studentname`,`subjectno`
FROM student AS s
RIGHT JOIN result AS r
ON  s.`studentno` = r.`studentno`

– Left join 会从左表中返回所有的值,即使右表中没有匹配

SELECT s.`studentno`,`studentresult`,`studentname`,`subjectno`
FROM student AS s
LEFT JOIN result AS r
ON  s.`studentno` = r.`studentno`

– 多表查询

SELECT s.`studentno`,`studentname`,`subjectname`,`studentresult`
FROM student s
RIGHT JOIN result r
ON r.`studentno`=s.`studentno`
INNER JOIN `subject` sub
ON sub.subjectno = r.`subjectno`

/*
思路:
– 我要查询哪些数据 select
– 从哪几个表中查 FROM 表 join 连接的表 on 交叉条件
– 假设存在多张表,先查询两张然后再慢慢增加
*/

– 查询父子信息: 把一张表看作两个一模一样的表

SELECT a.`categoryName`AS '父',b.`categoryName` AS '子'
FROM `category` AS a,`category` AS b
WHERE a.`categoryid`=b.`pid`

排序和分页:
– 排序:升序ASC 降序DESC
– ORDER BY 通过哪个字段排序 怎么排

– 分页 limit 查询起始下标,一页显示多少条数据(pagesize)
– 排序和分页写在where 语句后面

SELECT `studentresult`,`subjectname`,`studentname`
FROM `result` AS r
INNER JOIN `subject` AS s
ON r.`subjectno`=s.`subjectno`
INNER JOIN student AS a
ON a.`gradeid`=s.`gradeid`
WHERE `subjectname`='Java程序设计-1' AND `studentresult`>85
ORDER BY studentresult DESC
LIMIT 0,10

子查询:
– 查询C语言-1 考试结果(学号,姓名)

SELECT `studentno`,`studentname` FROM student
WHERE `studentno` =(
SELECT `studentno` FROM `result`
WHERE `subjectno` =(
SELECT `subjectno` FROM `subject`
WHERE `subjectname`='C语言-1'
)
) 

创建用户:

– 创建用户 CREATE USER 用户名 IDENTIFIED BY ‘密码’

CREATE USER kuangshen IDENTIFIED BY '12345'

– 修改密码 (修改当前用户密码)

SET PASSWORD = PASSWORD('11111')

– 修改密码 (修改指定用户密码)

SET PASSWORD FOR kuangshen PASSWORD('11111')

– 用户重命名

RENAME USER kuangshen TO kuangshen2

– 用户授权 ALL PRIVILEGES 全部的权限,库.表
– ALL PRIVILEGES 除了给别人授权 其他都能干

GRANT ALL PRIVILEGES ON *.* TO kuangshen2

– 查询权限

SHOW GRANTS FOR kuangshen -- 查看指定用户权限
SHOW GRANTS FOR root@localhost -- 查看root用户

– 删除权限 REVOKE

REVOKE ALL PRIVILEGES ON *.* TO kuangshen

– 删除用户

DROP USER kuangshen

– 使用命令行导出MySQL备份

mysqldump -h 主机 -u 用户名 -p 密码 数据库 表1 表2 表3 >物理磁盘位置/文件名

mysqldump -hlocalhost -uroot -p123456 school student >D:/a.sql

– 导入备份
#登录的情况下,切换到指定的数据库
#source 备份文件

source D:/a.sql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值