MySQL基础语法

一、DDL

  1. 创建数据库:create database 数据库名 charact set 字符集 (指定字符集可省略) ; create database if not exists 数据库名;( create database if not exists test;)
  2. *查看数据库: show create database 数据库名;SELECT DATABASE();
  3. 查看所有数据库 show databases;
  4. 创建表:
    CREATE table person (ID INT(8),fist_name VARCHAR(20),phone_number VARCHAR(20));
  5. 查看表
    show tables; desc 表名;show create table 表名; create table 新表名 like 旧表明(创建的新表和旧表结构一样);
    6.添加表列
    ALTER TABLE person add Last_name VARCHAR(20);
    7.修改列名
    ALTER TABLE person2 CHANGE Last_name LAST_Name VARCHAR(20);
    8.修改列类型
    ALTER TABLE person2 MODIFY LAST_Name int (10);
    9.删除列
    ALTER TABLE person2 DROP LAST_Name ;

二、*DML(对数据库表的数据进行增删改)

1.插入数据
INSERT INTO person VALUES (1,‘Tom’,‘666’);
注意:值与字段必须对应,个数相同,类型相同
值的数据大小必须在字段的长度范围内
除了数值类型外,其它的字段类型的值必须使用引号引起来(建议使用单引号)
2.更改操作
①UPDATE person SET fist_name=‘lala’ where fist_name=‘Scan’;带条件修改
②UPDATE person SET fist_name=‘lala’ ; 不带条件修改
③update 表名 set 字段名=值,字段名=值… where 字段名=值;可修改多个字段
3.删除操作(了解)
DELETE FROM person;(清空整张表)不建议使用
DELETE FROM person where ID=1; 加条件删除
TRUNCATE table person;truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样。

	设置编码:utf8

三、DQL(重点)

1、基本查询
select * from 表名;
select 列名1,列名2,…from 表名;
select 列名1 as 别名1 ,列名2 as 别名2,… from 表名;

2、条件查询
①比较运算符
大于(>)
查询math分数大于80分的学生:
SELECT * FROM student3 WHERE math>80;
小于(<)
大于等于(>=)
小于等于(<=)
查询english分数小于或等于80分的学生:
SELECT * FROM student3 WHERE english<=80;
等于(=)
查询age等于20岁的学生
SELECT * FROM student3 WHERE age=20;
不等于(<>,!=)
查询age不等于20岁的学生
SELECT * FROM student3 WHERE age!=20;
SELECT * FROM student3 WHERE age<>20;
②逻辑运算符
and
查询age大于35且性别为男的学生(两个条件同时满足)
SELECT * FROM student3 WHERE age>35 AND sex=‘男’;
or
查询age大于35或性别为男的学生(两个条件其中一个满足)
SELECT * FROM student333 WHERE age>35 OR sex=‘男’;
in
查询id是1或3或5的学生
SELECT * FROM student3 WHERE id=1 OR id=3 OR id=5;
SELECT * FROM student3 WHERE id IN (1,3,5);
not
查询id不是1或3或5的学生
SELECT * FROM student3 WHERE id NOT IN (1,3,5);
③范围
BETWEEN 值1 AND 值2
查询english成绩大于等于75,且小于等于90的学生
SELECT * FROM student3 WHERE english>=75 AND english<=90;
SELECT * FROM student3 WHERE english BETWEEN 75 AND 90;
④模糊查询
关键字:like
通配符:%,_(下划线)
查询姓马的学生
SELECT * FROM student3 WHERE NAME LIKE ‘马%’;
查询姓名中包含’德’字的学生
SELECT * FROM student3 WHERE NAME LIKE ‘%德%’;
3、排序
关键字:order by
单列排序
使用一个字段进行排序
查询所有数据,使用年龄升序(默认为升序)
SELECT * FROM student3 ORDER BY age ;
组合排序
使用多个字段进行排序
查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩降序排序
SELECT * FROM student3 ORDER BY age DESC, math DESC;
4、聚合函数
使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个结果值
会忽略空值
count
统计指定列记录数,记录为NULL的不统计
sum
计算指定列的数值和,如果不是数值类型,那么计算结果为0
avg
计算指定列的平均值,如果不是数值类型,那么计算结果为0
max
计算指定列的最大值
min
计算指定列的最小值
例:查询员工的平均工资:
SELECT AVG(salary) FROM employees;
5、分组
关键字:group by…having
对查询信息进行分组, 相同数据作为一组
将分组字段结果中相同内容作为一组,并且返回每组的第一条数据,所以单独分组没什么用处。分组的目的就是为了统计,一般分组会跟聚合函数一起使用
注意
当我们使用某个字段分组,在查询的时候也需要将这个字段查询出来,否则看不到数据属于哪组的
示例
查询男女各多少人
SELECT sex, COUNT(*) FROM student3 GROUP BY sex;
having与where的区别
having是在分组后对数据进行过滤.
where是在分组前对数据进行过滤
having后面可以使用聚合函数
where后面不可以使用聚合函数
6、分页
关键字:limit(分页)
作用就是限制查询记录的条数
放在每条sql语句的最后
语法
LIMIT offset,length; 或者limit length; offset 是指偏移量,可以认为是跳过的记录数量,默认为0 length 是指需要显示的总记录数
示例
查询学生表中数据,从第三条开始显示,显示6条
SELECT * FROM student3 LIMIT 2,6;
注意
如果第一个参数是0可以简写
LIMIT 10,5; – 不够5条,有多少显示多少
7、数据库约束
约束种类
主键
primary key
唯一
unique
设置的字段中不能存在重复值
非空
not null
字段设置为空后,不能插入非空数值
默认
default
设置默认之后,数据库表中的字段不设置值时,会自动设置为默认值
CREATE TABLE st9 (
id INT,
NAME VARCHAR(20),
address VARCHAR(50) DEFAULT ‘广州’
);
INSERT INTO st9 (id, NAME) VALUES (1, ‘刘德华’);
address不指定默认值,再添加记录时自动补充
外键
foreign key
主键
用来唯一标识一条记录
每个表都应该有一个主键,并且每个表只能有一个主键
设置主键的原则
不用业务字段作为主键(设置id字段)
主键是给数据库和程序使用的
主键有没有含义没有关系,只要不重复,非空就行
创建主键特点
主键必须包含唯一的值
主键列不能包含NULL值
创建主键的方式
在创建表的时候给字段添加主键
字段名 字段类型 PRIMARY KEY
在已有表中添加主键
ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
删除主键
alter table 表名 drop primary key;
主键自增
在创建表指定主键时在其后加入auto_increment;
修改起始值:ALTER TABLE 表名AUTO_INCREMENT=起始值;
注意
delete删除时,主键在原有基础上累加
truncate删除时,主键从1开始计算
8、映射关系
一对一
一对多
多对多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值