MySQL 是开源免费的数据库管理系统,因此众多互联网公司都在使用
本篇是新手笔记,记录学习的知识点,主要内容有
一、MySQL 常用指令
二、MySQL 语句分类
三、select 基本语句
四、DML(insert/update/delete) 基本语句
一、MySQL 常用指令
操作 | 语句实例 |
---|---|
登录 数据库 | mysql -uroot -p888 test 1、不输入888直接回车可隐式输入密码 2、test 为可选,进入直接使用该数据库 3、test为库名,以下出现的test都是库名 |
查看 当前版本 | show version(); |
查看 数据库 | show databases; |
创建 数据库 | create database test; |
查看 创建库的语句 | show create database test; |
删除 数据库 | drop database test; |
使用 数据库 | use test; |
查看 当前使用的库 | select database(); |
查看 当前库的表 | show tables; |
查看 某库某表 | show tables from test; |
创建 表 | create table stu ( id int, name varchar(10) ); stu为表名,以下stu同理 |
查看 创建表的语句 | show create table stu; |
删除 表 | drop table stu; |
重命名 表 | rename table stu to student; |
查看 表结构 | desc stu; |
修改表 | alter table stu --> 增加字段:add sex char(1); --> 删除字段:drop column sex; --> 定义外键:add constraint fk_teachers_stu foreign key (stuId) references stu(id); |
复制 表 | create table stu2 as select * from stu; |
导入外部 .sql | source D:/test/stu.sql PS: 如跟cmd在同一路径,可以直接使用文件全名 使用绝对路径时,应使用 /,使用 \ 在win下可能导致报错 |
二、MySQL 语句分类
缩写 | 全称 | 代表关键字 |
---|---|---|
DQL | Data Query Language | select |
DML | Data Manipulation Language | insert, delete, update |
DDL | Data Definition Language | create, drop, alter |
TCL | Transactional Control Language | commit, rollback |
DCL | Data Control Language | grant, revoke |
三、select 基本语句
操作 | 语句 | Remark |
某个字段 | select name from student; |
|
多个字段 | selet name, age from student; |
|
全部字段 | select * from student; |
|
重命名字段 as | select name as "姓名" from student; | as 可省略 |
检索唯一列值 DISTINCT | select distinct prod_id, pro_name from products; | distinct 只能放在首个字段前面 作用于全部字段 |
倒叙排列 DESC | selet name, age from student order by age desc; | desc 放在字段后,只作用于此字段, 默认为正序 |
限制结果 LIMIT | 检索前 5 行: select prod_name from products limit 5; # 若少于5行,取实际数量行 | 检索 6-9 行: select prod_name from products limit 5,4; # 索引从0开始,所以第6行从5开始 |
四、DML(insert/update/delete) 基本语句
语句类型 | 实例 | 说明 |
insert into | insert into Courses (Cno, Cname, Tno) values ( "3-105", "计算机导论", "825" ); | 字段值与字段,数量一致,类型相对应,字段顺序可不按表格顺序,只要字段值对应即可 |
| insert into Courses values ( "3-105", "计算机导论", "825" ); | 字段值与字段,数量一致,类型相对应 |
| insert into Courses (Cno, Cname) values ( "3-105", "计算机导论"); | 允许为null的字段可不插入,其他字段与字段值对应即可 |
| insert into Courses values ( "3-105", "计算机导论", "825" ), ( "3-245", "操作系统", "804" ), ( "6-166", "数字电路", "856" ), ( "9-888", "高等数学", "831" ); | 插入多个值,用 ,隔开即可 |
update set | update Courses set Cno="4-105", Cname= "Java开发" where Cno="3-105"; | 没有where语句将导致整表全改 |
delete | delete from Courses where Cno="9-88"; | 没有where语句将导致整表删除 |
truncate | truncate table Course; | 删除表,表被截断,不可回滚,永久丢失 |