admin 管理员组文章数量: 888299
SQL基本语句说明
sql语句说明
在准备工作做好之后,我们就要client端去操作MySQL数据库(数据的储存和管理),说白了就是数据的增删改查(CRUD)
C creat
R retrieve
U update
D delete
我们需要用client端写/发送SQL语句到server端
新建Excel,创建sheet,填入数据,
新建数据库,新建表,更新数据,删除数据。
SQL语句按功能,往往分为这几类:
下面的几类SQL语句就是在帮我们完成这个流程
DDL语句(结构性操作) :数据定义语言
创建数据库
创建表
修改表结构
DML语句(对于数据的增删改):数据操作语言
DQL语句: 数据查询语言
DCL语句(事物的提交/回滚):数据控制语言
DDL操作数据库
代码注释中写着功能哩
DDL之创建数据库相关
#这是一个单行注释--这也是一个单行功能
/*这是一个多行注释
CASCADE
*/
create database db1;-- 创建数据库时指定字符集编码
CREATE DATABASE db1_1 CHARACTER SET utf8;#切换数据库
use db1;#查看当前使用的数据库
select DATABASE();#查看MySQL中有哪些数据库
show databases;#查看数据库定义信息
show create database db1;#CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N
DDL之修改及删除数据库
#DDL修改数据库
alter database db1 character set utf8;show create database db1;
CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */#删除数据库
drop database db1;
DDL之创建数据表相关
一个数据库中可以有n个表,表中又有字段,在建表的时候,就需要定义好字段(指定字段属性->字段数据类型+字段长度等)
MySQL中的char类型和varchar类型,区别在于
char类型是固定长度,根据定义的字符串长度分配空间
varchar类型是可变长度,只使用字符串长度所需的空间
比如,保存字符串“abc”
x char(10);#占用10个字节
y varchar(10);#占用3个字节
char类型适用于存储固定长度的字符串,如密码,性别一类
varchar类型适合存储在一定范围内,有长度变化的字符串
char的查询效率高一点
创建表的语法结构
/*create table 表明 (字段名称1 字段类型(长度),字段名称2 字段类型 注意 最后一列不要加逗号
);
*/
use db1;create table category(cid int,cname VARCHAR(20));create table test1(tid int,tadte date
);#赋值表结构创建新表
create table test2 like test1;#查看表结构信息
desc test2;#查看当前数据库中有哪些数据表
show tables;#查看创建表的SQL语句
show create table test1;
/*
CREATE TABLE `test1` (`tid` int DEFAULT NULL,`tadte` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3
*/
DDL之删除表
#删除数据库/表用drop,输出数据用delete
drop table test1;
#存在表之后再删除
drop table if exists test1;
DDL之修改表
#修改表名#语法格式
#rename table 旧表名 to 新表明;rename table category to category1;#向表中添加列,关键字 ADD
#alter table 表名 add 字段名称 字段类型alter table category1 add cdesc varchar(20);#修改表中的列的数据类型或长度 关键字modify
#语法割舍
#alter table 表名 modify 字段名称 字段类型
alter table category1 modify cdesc varchar(50)#修改列的名称
#语法格式 alter table 表明 change 旧列名 新列名 类型(长度);
alter table category1 change cdesc description varchar(30);#删除分类中的description这列
#alter table category drop description;
alter table category1 drop description;
######alter 命令 +不同的动作(add,modify,change,drop);
DML操作数据库
DML之插入数据库
use db1;
create table student(
sid int,
sname varchar(20),
age int,
sex char(1),
address varchar(40)
);#写SQL插入数据
#方式一:插入数据时把所有字段名称显示写出
insert into student(sid,sname,age,sex,address) values(1,'张三',18,'女','北京');
#方式二:插入全部字段,不再写字段名称了
insert into student values(2,'李四',20,'男','北京');
#方式三:插入指定字段数据的值
insert into student(sname,address) values('薛五','南京');/*
注意:
值与字段必须要对应,个数相同&数据类型相同
值的数据大小,必须在字段指定的长度范围中
varchar char date类型的值必须使用单引号,或者双引号包裹
如果要插入空值,可以忽略不写,或者插入null
如果插入指定字段的值,必须要写上列名
DML之修改数据库
#修改数据
update student set address='成都' where sname='薛五';update student set address='成都';#把student表address列数据全部给为了成都#可以同时修改多个列
update student set addressupdate student set address='上海',sex='女';
DML之删除数据库
#数据删除*/
/*delete from #删除所有数据delete from 表名[where 字段名=值] #指定条件,删除数据truncate table 表名;先删除整张表,然后在重新创建一张一模一样的表,效率高*/delete from student where sid=1;#删除sid等于1的数据truncate table student;
#当一个表中条数非常多的时候,又要做删除动作的时候,如果用delete会很慢,那我们可以用truncate
DQL之查询语句
DQL之简单查询
create table emp(eid int,ename varchar(20),sex char(1),salary double,hire_date date,dept_name varchar(20)
);insert into emp values(1,'孙悟空','男',7200,'2021-02-04','教学部');
insert into emp values(2,'猪八戒','男',3200,'2010-02-04','教学部');#查询emp表中的所有数据
select * from emp;
#查询部分字段
select ename ,salary from emp;
#别名查询,指定姓名
select ename as'员工姓名' ,salary as'工资' from emp;
#去重操作
select distinct dept_name from emp;
#加1000查询
select ename salary+1000 from emp;
DQL之查询运算法
#条件查询
# select 列明 from 表名 where 条件表达式
# 先取出表中的每条数据,满足条件的数据就返回,不满足的就过滤掉
/*> < <= >= = <> !=
BETWEEN.... and....
where age between 18 and 30;
IN(集合)
where sname in ('王五','王六')
like'%王%'
where sanme like '%王%' 名字中有王
where sname like '王%' 名字以王开头
is null 查询不能为null值
select * from emp where dept_name is null;逻辑运算法
and $$ 多个条件同时成立
Or || 多个条件任一成立
Not 不成立,取反
*/
#查询员工姓名为黄蓉的员工信息
select * from emp where e.ename='黄蓉';
#查询薪水价格为5000的员工信息
select * from emp e where e.salary=5000;#查询薪水价格不为5000的员工信息
select * from emp e where e.salary!=5000;#查询薪水价格是3600 或7200或者两万的员工信息
select * from emp e where e.salary=3600 or e.salary=70000 e.salary=20000;
select * from emp e where e.salary in(3600,7200,20000);
#查询第二个为兔的员工信息
select * from emp where ename like '_兔%'
本文标签: SQL基本语句说明
版权声明:本文标题:SQL基本语句说明 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686635765h20057.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论