MySQL基础知识
MySQL基础知识:
一. 知识点:
1. SQL分类:按照其功能不同,分为3中类别
DDL(Data Defintion Language):数据定义语句,用于定义不同的数据段、数据库、表、列、索引等。常用的语句关键字包括create、drop、alter等;
DML(Data Manipulation Language):数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据的完整性。常用的语句关键字主要包括insert、delete、update和select等;
DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等;
2. My Sql的数据类型: int 整数(默认长度为11)
varchar 字符串,取值范围 0-255 (在定义字段时,需指定字符串的最大长度)
date 日期型(插入数据时需用单引号)
3. DDL是数据定义语言,简单来说,就是对数据库内容的对象进行创建、删除、修改和操作语言,它和DML最大的区别在于DML是对表内部数据的操作,不涉及表的定义、结构的修改,也不涉及其他对象;
二. 数据库的操作
1. create database test; 创建一个名为hxm的数据库
2. drop database test; 删除一个名为test的数据库
3. 显示数据库: show databases;
4. 选中数据库: use test;
5. 显示数据库里的表格: show tables;
说明: 数据库删除之后,这个数据库中所有数据都会全部删除,所以删除前一定要慎重并做好备份工作.
三. 表格
1. 创建一个名为emp的表格,并设置empId这个字段为主键
cteate table emp(
empId int auto_increment primary key,
empName varchar(10) not null,
gender int,
birth date);
3. 查看表格字段的设置: desc emp;
5. 删除表格: drop table emp;
6. 删除表格中的所有数据: delete from emp;
6. 查看表格的SQL语句: show create table emp;
7. 查看表格中添加的数据: select * from emp;
四. 修改表格字段:
alter table 语句用于在已有的表中添加、修改或删除列。
1. 修改字段的类型大小: 下面这句是修改了emp这个表格的empId这个字段的类型的大小改为20
alter table emp modify empId int(20);
修改字段的类型: 下面这句是修改了emp这个表格的empId这个字段的类型改为varchar(10)
alter table emp modify empId varchar(10);
2. 修改字段的名称: 下面这句是修改了emp这个表格的empId这个字段名称为empid,类型不变
alter table emp change empId empid varchar(10)
3. 同时修改字段的名称和类型: 下面这句是修改了emp这个表格的empId这个字段名称为empid,类型为varchar(20)
alter table emp change empId empid varchar(20)
4. 添加字段: 下面这句是emp这个表格内插入了一个gender的字段,并设置gender这个字段的类型为int
alter table emp add gender int;
5. 删除字段: 下面这句是把emp这个表格内的empName这个字段删除
alter table emp drop column empName;
6. 修改表格名称: 下面这句是把emp这个表格的名称改为emp1
alter table emp rename emp1;
五. 设置外键(举例): 1. 首先创建一个表格,设置其主键;
2. 再创建一个表格,设置其外键为上一个表格的主键;
注意: 给表格创建一个外键时,需先创建外键所在的表格;
例: 外键所在的表格:
create table dept(
deptNo int auto_increment primary key,
deptName varchar(10) not null);
另一个表格:
create table emp(
empId int auto_increment primary key,
empName varchar(10) not null,
deptno int,
foreign key(deptno) references dept(deptNo));
说明: 1. 首先创建了dept这个表格,并设置其主键为deptNo;
2. 再创建了emp这个表格;
3. 在emp这个表格创建deptno这个字段,并设置其类型为int;
4. 再把deptno设置为该表格的外键,写法如下:
deptNo int,
foreign key(deptNo) references dept(deptNo));
注意: 外键字段在插入数据时,该字段的值须是外键所在表格主键的数据值之一,否则不能插入;
六. 插入数据的语法:
1. insert into emp(empId, empName, deptno) values(1,'小红',1); 在emp这个表格插入empId,empName,deptno这三个字段的值:
2. insert into emp values(1,'小红',1); 表示对emp这个表格中的所有字段依次匹配,插入数据;
3. insert into emp(ename, birth, deptNo) values('张三','2000-1-1', 2),('李四', '2001-1-1',3);//多条插入
七. 一些约束的设置:
1. 设置默认值的约束: 下面这句是创建一个student表格,并设置其gender字段的默认值为1:
create table emp(
gender int default '1');
注意: 默认约束对以前的值不会修改; 数据需加单引号''
2. 设置主键: 方式一:
下面这句是创建一个emp表格,并设置其sNo字段为主键,并让其自增长:
create table student(
sNo int auto_increment primary key);
注意: int类型的才能自增长,主键不能被删除(暂时理解)
方式二: alter table emp add primary key(empNo);
3. 设置不能为null的约束: 下面这句是创建一个student表格,并设置其sName字段不能为空:
create table student(
sName varchar(20) not null);
八. 修改,删除,查询数据的语法:
1. update emp a set a.sname = '张三' where a.sage >= 20 && a.sage <= 30;
说明: update表示更新;emp是被更新的表格;a是为emp表格设置的别名,方便后面的使用;
where后面是条件,满足这个条件才把sname字段的数据更新为'张三';
注意: 修改数据时要加上条件,不然修改的是所有数据.
2. delete a from emp a where a.empid >= 2;
说明: delete表示删除;a为emp表格设置的别名,方便后面的使用;
where后面是条件,满足empid的数据大于等于2,则把那个对象删除.
3. delete a from emp a where a.sname is null; 表示删除sname字段值为空的数据.
4. select * from emp a where a.empid >= 4; *号代表查找满足empid>=4的对象,并显示该对象的所有字段数的据;
select a.sname from emp a where a.empid >= 4; 表示查找满足empid>=4的对象的sname字段;
九. 查询语法:
1. select a.sname from emp a where a.sname like '王%'; 表示查询以"王"字开头的sname字段的值
2. select a.sname from emp a where a.sname like '%王%'; 表示查询中间带有"王"字的sname字段的值
3. select a.sname from emp a where char_length(a.sname) = 3; 表示查询字符个数为3(名字为3个字)的sname字段的值.