文章目录
一、SQL命令执行方式及语法规范
结构化查询语言,用于操作关系型数据库服务器,主要是对数据执行增删改查。
1、交互模式
客户端输入一行,点击回车,服务器端就执行一行,适用于临时性的查看数据
2、脚本模式
把所有要执行的命令写在一个脚本文件中,一次性的提交给服务器执行,适用于批量的操作数据
在建立连接前 (quit或是点击重新启动mysql、点击shell即可)
mysql -uroot<拖拽要提交的脚本过来 回车
(mysql -uroot< 中的mysql是指通过mysql客户端提交脚本文件)
3、SQL命令的语法规范
一条SQL命令可以跨越多行,以英文的分号作为结束
SQL命令不区分大小写,习惯上关键字大写,非关键字小写
假设某一条SQL语句出现语法错误,则此条语句到最后所有的语句都不再执行
分为单行注释(#…)和多行注释(/…/),注释的内容不被服务器所执行
二、常用SQL命令
1、丢弃数据库,如果存在
DROP DATABASE IF EXISTS jd;
2、创建新的数据库
#创建表不会有提示,说明已创建成功jd数据库表
CREATE DATABASE jd;
3、进入数据库
USE jd;
4、创建保存数据的表
CREATE TABLE student(
sid INT,
name VARCHAR(8),
sex VARCHAR(1),
score INT
);
5、插入数据
# 引号不区分单双,单双皆可
INSERT INTO student VALUES(‘1’,’ran’,’F’,’59’);
#示例:创建保存笔记本数据家族分类的表family
# 创建保存笔记本数据家族分类的表family
CREATE TABLE family(
fid TINYINT PRIMARY KEY,
frame VARCHAR(64)
);
#示例插入数据
# 插入数据
INSERT INTO family VALUES
('10','联想'),('20','戴尔'),('30','小米');
注:插入的数据可以连写。但不建议,不推荐如下例的这样连写:因为有一个fid如果有插入NULL值,会显示为0,但是如果有2个fid值都插入为NUll会报错:(‘10’,‘联想’),(‘NULL’,‘戴尔’),(‘NULL’,‘小米’);
扩展:INSERT语句🔗
在创建数据库完成之后,我们需往数据库中出入数据,在MySQL中可以使用INSERT语句向数据库已有数据库表插入一行或者多行数据
基本语法:
INSERT语句有两种语法形式,分别是INSERT…VALUES…语句和INSERT…SET…语句
一、INSERT VALUES:
INSERT INTO 表名 (列名,列名1,列名2...)VALUES(值,值1,值2,值3)
语法注释:
①表名:数据库中被操纵的表名(需要出入数据的数据库表名)
②列名:数据表中指定出入数据的列名(如需要向表中所有的列去插入数据,可直接忽略列名,直接采用INSERT 表名 VALUES(值…)
③VALUES 或 VALUE子句:包含数据库的数据清单(值),清单中的数据顺序要和列的顺序相对应
二、INSERT SET:
INSERT INTO 表名 SET 列名=值,列名1 = 值1,列名2=值2...
语法注释:
①表名:数据库中被操纵的表名(需要出入数据的数据库表名)
②列名:数据表中指定出入数据的列名
③上述语句是给表中需要操作的某些被指定的列插入值,插入数据的列名在SET字句中被指定,= (等号)后面为指定列的值,未指定的列,默认插入默认值
6、查询数据
# 查询数据
SELECT * FROM student; # *号前后空格,可有可无
ex:编写脚本文件04_tedu.sql,丢弃数据库,如果存在tedu,创建一个新的数据库tedu
ex:进入数据库tedu,创建保存员工数据的表emp,包含的列有编号eid,姓名name,地址addr,电话phone
ex: 往员工表emp下插入若干条数据,查询结果。
#设置客户端连接服务器端的编码为UTF-8
SET NAMES UTF8;
#丢弃数据库,如果存在tedu
DROP DATABASE IF EXISTS tedu;
#创建一个新的数据库
CREATE DATABASE tedu;
#进入数据库tedu
USE tedu;
#创建保存员工数据的表emp
CREATE TABLE emp(
eid INT,
name VARCHAR(8),
addr VARCHAR(16),
phone VARCHAR(11)
);
#插入数据
INSERT INTO emp VALUES('1','ran','beijing','18112345678');
INSERT INTO emp VALUES('2','然哥','shenzhen','18812345678');
#查询数据
SELECT * FROM emp;
ex:编写脚本文件xz.sql,先丢弃再创建数据库xz,进入数据库xz,创建保存用户数据的表user,包含有编号uid,用户名uname,密码upwd,邮箱email,电话phone,真实姓名userName,注册时间regTime,是否在线isOnline;插入若干条数据,查询结果
#设置客户端连接服务器端的编码为UTF-8
SET NAMES UTF8;
#丢弃数据库,如果存在
DROP DATABASE IF EXISTS xz;
#创建新的数据库,设置存储编码为UTF-8
CREATE DATABASE xz CHARSET=UTF8;
#进入该数据库
USE xz;
#创建保存数据的表
CREATE TABLE user(
uid INT,
uname VARCHAR(16),
upwd VARCHAR(32),
email VARCHAR(32),
phone VARCHAR(11),
userName VARCHAR(8),
regTime VARCHAR(10), # 2020-08-03
isOnline VARCHAR(1) # y/n
);
#插入数据
INSERT INTO user VALUES('1','ran','123456','ran@163.com','18112345678','然哥','2019-12-20','y');
INSERT INTO user VALUES('2','dong','888888','dong@qq.com','13999999999','李东','2020-1-3','n');
INSERT INTO user VALUES('3','hua','666666','hua@tedu.cn','15812345678','钟华','2018-5-5','n');
#删除数据
DELETE FROM user WHERE uid='2';
#修改数据
UPDATE user SET phone='18500000000',isOnline='y' WHERE uid='3';
#查询数据
SELECT * FROM user;
7、删除数据
# 删除表中某条数据
DELETE FROM user WHERE uid=’2’;
# 删除整个user表
DELETE FROM user;
8、修改数据
UPDATE user SET phone=’18500000000’,isOnline=’y’WHERE uid=’3’;
番外:SQL语句的分类🔗
不同的数据库都使用SQL语句来操作,SQL语句大体上分为五部分:
1、DDL语句
DDL语句是定义数据结构,也就是用来操作表格结构的。代表的指令有:create(创建表)、alter(修改表)、drop(删除表);
2、DML语句
DML语句是操作表中数据的,代表指令有:insert(插入数据)、update(修改数据)、delete(删除数据);DML语句是所有SQL语句中使用最多的,insert就是网站的注册功能、update就是网站的修改用户信息、delete就是网站的注销账号。
3、DQL语句
DQL语句是数据查询语句,代表指令有:select(查询数据),select就是网站的搜索、登录等等;
4、TCL语句
TCL语句是事务控制语句,该语句是用来与DML语句一起配合使用的,具体来维护表中数据一致性。insert、update、delete语句执行之后必须配合commit语句(提交)才能真正生效。TCL语句除commit之外,还有rollback和savapoint语句。
5、DCL语句
DCL语句是要用户控制语句,是DBA(Database Administratro)管理员用来才可以使用的语句。代表指令:grant(授予用户权限)、revoke(撤销用户权限)
查看上一节,你可以点击👉【MySQL】数据库基础知识_Unit01