数据库相关名词
- DB:数据(database):存储数据的仓库,保存了一系列有组织的数据
- DBMS:数据库管理系统,常用的数据库管理系统:mysql oracle DB2 SqlServer
- SQL:结构化查询语言
数据库表操作命令:
- show databases; 查看数据库
- show tables; 查看当前数据库表
- show tables from 库名; 查询其他库的表
- use databaseName; 使用xxx的数据库
- use tableName; 使用xxx表
- select database(); 查看当前所在的数据库
- create database xxx; 创建数据库
- create table stuinfo( id int,name varchar(20)); 创建表
- desc stuinfo; 查看表结构
- 增删改查操作:
- select * from stuinfo;查询表格的数据
- insert into stuinfo(id,name)values (1,‘rose’) 插入一条记录
- 查询数据库版本
- select version();
- mysql -V
- mysql如何通过命令行执行sql脚本
mysql -u root -p 123456 进入mysql source sql文件的路径
SQL语言的一些名词
KEY:普通索引,作用包括:一是约束(偏重于约束和规范数据库的结构完整性),
二是索引(辅助查询用的)。
包括有:primary key,foreign key,union key等等。
- primary key 有两个作用,一是约束作用(constraint),用来规范一个存储主键和唯一性,但同时也在此key上建立了一个主键索引;
PRIMARY KEY 约束:唯一标识数据库表中的每条记录;
主键必须包含唯一的值;
主键列不能包含 NULL 值;
每个表都应该有一个主键,并且每个表只能有一个主键。(PRIMARY KEY 拥有自动定义的 UNIQUE 约束)
- unique key 也有两个作用,一是约束作用(constraint),规范数据的唯一性,但同时也在这个key上建立了一个唯一索引;
UNIQUE 约束:唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
(每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束)
- foreign key 也有两个作用,一是约束作用(constraint),规范数据的引用完整性,但同时也在这个key上建立了一个index;
起别名
好处:
- 便于理解
- 如果要查询的字段有重名的情况,利用别名可以区分开来。
方法:
- 使用as关键字
- 使用空格
列子:
select 100%98 as result
select last_name 姓, next_name 名 from employees
去重(DISTINCT)
select DISTINCT department_id from employees
字符串拼接
CONCAT()方法,将方法内的参数全部进行拼接
如:select CONCAT(‘a’,‘b’,‘c’);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eiuEdiBm-1628086096354)(image/字符串或者字段拼接.png)]
实例:
-
出现空值设置为0;
SELECT IFNULL(commission_pct,0),commission_pct FROM employees;
-
显示employees的全部列,列之间用,隔开,列头显示为out_put
SELECT CONCAT_WS(',',employee_id,first_name,last_name,email,phone_number,commission_pct) as out_put from employees ;
select CONCAT(IFNULL(commission_pct,0),',',last_name) as out_put from employees;
实例训练
- 查询工资大于>12000的员工信息
select * from employees where salary>12000;
- 查询部门编号不是在90到110之间,或者工资高于10000的员工信息
select * from employees where NOT(department_id>=90 and department_id<=110) or salary>10000;
- 查询员工名字中第二个字符为_的员工名
select last_name from employees where last_name like '_$_%' escape '$';
使用in查询
判断某字段的值是否属于既定的某一项,适合用来做筛选。
案例:查询员工的工种编号是IT_PROG,AD_VP,AD_PRES中的一个的员工名和工种编号
SELECT last_name,job_id FROM employees where job_id in('IT_PROG','AD_VP','AD_PRES');
is null的使用
查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct is NULL;
注:=或<>不能判断null值,使用is null;
安全等于
- 安全等于:<=> 既可以用来判断null值,又可以用来判断普通数值,可读性查
= 普通=:只能判断普通数值,可读性好。 - IS NULL:只能用来判断null值,可读性好。