mysql基本命令 DDL(掌握),DML(掌握),DCL,TCL ,DQL(掌握)


1.DOS连接Mysql

将DOS命令窗口当做Mysql的客户端连接并操作Mysql数据库:
登录命令:
mysql -u用户名 -p密码

mysql -u用户名 -p
密码

mysql -h主机地址 -u用户名 -p密码

mysql -h主机地址 -u用户名 -p
密码

登录的方式有很多种,使用任意一种即可.
用户名(根用户): root
密码(根密码): root


2.SQL语句分类(4类)

分类 描述 关键字

DDL(Data Definition Language)
数据定义语言
用来定义数据库对象:数据库,表,列
create,drop,alter等

DML(Data Manipulation Language)
数据操作语言
用来对数据库中表的数据进行增删改
insert,delete, update等

DCL(Transaction Control Language)
数据控制语言
用来定义数据库的访问权限和安全级别,及创建用户
GRANT, REVOKE等

TCL(Transaction Control Language)
事务控制语言
用于控制数据库的事务操作
COMMIT,SAVEPOINT,ROLLBACK等

DQL(Data Query Language)
数据查询语言 (掌握)
DQL语言并不是属于MYSQL官方的分类,但是对数据库的操作最多就是查询,所以我们的程序员把查询语句的语句称作为DQL语言
SELECT 等

3.SQL通用语法

    SQL语句可以单行或多行书写,以分号结尾。

    可使用空格和缩进来增强语句的可读性。

    MySQL数据库的SQL语句不区分大小写。

    3种注释

    注释的语法 说明

    –空格
    单行注释,通用的注释

    #
    单行注释,只有mysql中可以使用

    /* */
    多行注释,

    4.1 DDL操作数据库

4.1.1 创建数据库

直接创建数据库

CREATE DATABASE 数据库名;

判断是否存在并创建数据库(了解)

CREATE DATABASE IF NOT EXISTS 数据库名;

创建数据库并指定字符集(了解)

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

具体操作:

-- 需求: 创建名称为db1的数据库
create database db1;
-- 需求: 当db2数据库不存在是创建名称为db2数据库
create database if not exists db2;
-- 需求: 创建名称为db3数据库,并指定字符集为gbk
create database db3 character set gbk;

4.1.2 查看数据库

查看所有的数据库

SHOW DATABASES;

查看某个数据库的定义信息

SHOW CREATE DATABASE 数据库名;

具体操作:

-- 需求:查询Mysql数据管理系统中所有的数据库
show databases;
-- 需求:查询db3数据库的建库语句
show create database db3;

4.1.3 修改数据库(了解)

修改数据库字符集格式

ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;

具体操作:

-- 需求:将db3数据库的字符集改成utf8
alter database db3 default character set utf8;
-- 注意:utf8没有中间的横杠

4.1.4 删除数据库

DROP DATABASE 数据库名;

具体操作:

-- 从数据库管理系统中删除名称为db2的数据库
drop database db2;

4.1.5 使用数据库

查看正在使用的数据库

SELECT DATABASE();

使用/切换数据库

USE 数据库名;

具体操作:

-- 查看正在使用的数据库
select database();
-- 使用db1数据库
use db1;

4.2 DDL操作表(掌握)
4.2.1 创建表

语法:

-- 创建表
create table 表名(
字段名 字段类型 约束,
字段名 字段类型 约束
);
-- 快速创建一个表结构相同的表
CREATE TABLE 新表名 LIKE 旧表名;

具体操作:

-- 需求:创建student表包含
-- id整数
-- name变长字符串长20
-- sex性别定长型1
-- birthday字段日期类型
create table student(
id int, -- 编号
name varchar(20), -- 姓名
sex char(1), -- 性别
birthday date -- 生日
);
-- 需求:创建一个student2表,结构与student相同
create table student2 like student;

常使用的数据类型如下:

数据类型 关键字

整型
int或integer

浮点型
double, float
decimal(5,2) 整个小数长5位,小数位占2位

字符串型
char定长:char(2) 最长存储2个字符,无论有没有使用2个,都是占用2个。
varchar可变长:如:varchar(100),最长可以保存100个字符
如果只使用了3个,占3个字符的空间。

日期类型
date或time,datetime

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zepAt76I-1599299836267)(/img/1590137146903.png)]

4.2.2 查看表

查看某个数据库中的所有表

SHOW TABLES;

查看表结构

DESC 表名;

查看创建表的SQL语句

SHOW CREATE TABLE 表名;

具体操作:

-- 需求:查看mysql数据库中的所有表
show tables;
-- 需求:查看student表的结构
desc student;
-- 需求:查看student表的建表语句
show create table student;

4.2.4 删除表

直接删除表
DROP TABLE 表名;
判断表是否存在并删除表(了解)
DROP TABLE IF EXISTS 表名;

具体操作:

-- 需求:直接删除student2表
drop table student2;
-- 需求:判断表是否存在,若存在则删除表
drop table if exists student2;

5.DQL对表数据的操作(掌握)
5.1 新增记录
5.1.1 新增全部字段数据

罗列所有的字段

INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3);

不写字段名

INSERT INTO 表名 VALUES (值1, 值2, 值3…);

此时值的个数,顺序,类型要和数据库表字段的个数,顺序,类型保持一致

5.1.2 新增部分字段数据

INSERT INTO 表名 (字段名1, 字段名2, …) VALUES (值1, 值2, …);

5.1.3 关键字说明及注意事项

1. 关键字说明
INSERT INTO 表名 //表示往哪张表中添加数据
(字段名1, 字段名2, …) //要给哪些字段设置值
VALUES (值1, 值2, …); //设置具体的值
2. 注意
值与字段个数,顺序,类型都必须对应
值的数据大小必须在字段的长度范围内
除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
如果要插入空值,可以不写字段,或者插入null

具体操作:

-- 添加一条记录(罗列所有字段方式): id为1,姓名为tom,性别为男,生日为2020-05-20
insert into stu (id,sex,name,birthday) values (1,'男','tom','2020-05-20');
-- 添加一条记录(省去字段名称不写方式): id为2,姓名为汤姆,性别为男,生日为2020-05-21
insert into stu values (2,'汤姆','男','2020-05-21');
-- 添加一条记录:姓名为柳岩,性别为女
insert into stu (name,sex) values('柳岩','女');

5.2 蠕虫复制
什么是蠕虫复制:

在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中

语法格式:

INSERT INTO 表名1 SELECT * FROM 表名2;

作用:将表名2 中的数据复制到 表名1 中

具体操作:

-- 1.快速创建一张stu2表,结构与stu一样
create table stu2 like stu;
-- 2.查询stu2表结构和表中的数据
desc stu2;
select * from stu2;
-- 3.蠕虫复制stu表中的数据到stu2表中
insert into stu2 select * from stu;

5.3 更新表记录
sql格式

不带条件修改数据

UPDATE 表名 SET 字段名=值,字段名=值;

带条件修改数据

UPDATE 表名 SET 字段名=值 WHERE 字段名=值 AND字段名称=值;

关键字说明

update	// 修改数据
set //修改哪些字段
where 条件; //指定条件

-- 需求:修改表中的性别为'女'
update stu set sex='女';
-- 需求:将表中id为1的性别改为男
update stu set sex='男' where id=1;

5.4 删除表记录

不带条件删除数据

DELETE FROM 表名;

根据条件删除数据

DELETE FROM 表名 WHERE 字段名=值;

truncate删除表记录

TRUNCATE TABLE 表名;

 truncate和delete的区别:
delete是将表中的数据一条一条删除
truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样

具体操作:

-- 需求:删除id为2的学生信息
delete from stu where id=2;
-- 需求:删除整张表中的所有数据
delete from stu;
truncate table stu;

第六章 基础SQL-DQL语句

查询不会对数据库中的数据进行修改.只是一种显示数据的方式

6.1 简单查询
备用数据:

----------------运行下面的sql语句,生成相关的数据库表
#创建商品表:
CREATE TABLE product(
pid INT,
pname VARCHAR(20),
price DOUBLE,
category_id VARCHAR(32)
);
INSERT INTO product(pid,pname,price,category_id) VALUES(1,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(2,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(3,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(4,'JACK JONES',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(5,'真维斯',200,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(6,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(7,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(8,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(9,'相宜本草',200,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(10,'面霸',5,'c003');

INSERT INTO product(pid,pname,price,category_id) VALUES(11,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(12,'香飘飘奶茶',1,'c005');

INSERT INTO product(pid,pname,price,category_id) VALUES(13,'果9',1,NULL);
INSERT INTO product(pid,pname,category_id) VALUES(14,'香飘飘奶茶','c005');

6.1.1 查询所有

​ select * from 表名;

-- 需求:查询所有的商品.
SELECT * FROM product;

6.1.2 查询指定列

​ select 字段名1,字段名2… from 表名;

-- 需求:查询商品名和商品价格.
SELECT pname,price FROM product;

6.1.3 别名查询

​ select 字段名1 as 别名,字段名2 别名 from 表名 as 表别名;

​ as关键字可以省去不写

-- 需求3.别名查询.使用的关键字是as(as可以省略的).
-- 3.1表别名:查询商品名称和价格
SELECT pro.pname,pro.price FROM product AS pro;
-- 3.2列别名:查询商品名称和价格
SELECT pname AS "商品名称",price "商品价格" FROM product;

6.1.4 去重复查询

​ select distinct 字段名 from 表名;

-- 需求:查看商品表中有那些价格.
SELECT DISTINCT price FROM product;

6.1.5 查询结果参与运算

​ select 列名1 + 固定值 from 表名;

-- 需求:将所有商品的价格+10元进行显示. (查询结果可参与运算)
SELECT *,IFNULL(price,0)+10 FROM product;

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

mysql基本命令 DDL(掌握),DML(掌握),DCL,TCL ,DQL(掌握)

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » mysql基本命令 DDL(掌握),DML(掌握),DCL,TCL ,DQL(掌握)
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏