快速入门MySql

Sql语句


  • Sql的语法
    - 每条语句以分号结尾(命令行里面需要),如果在navicat,java代码中不是必须加的
    - SQL在window中不区分大小写,关键字中认为大写和小写是一样的

  • Sql的分类
    - Data Definition Language (DDL数据定义语言) :操作数据库,操作表
    - Data Manipulation Language(DML数据操纵语言):对表中的记录操作增删改
    - Data Query Language(DQL 数据查询语言):对表中的查询操作
    - Data Control Language(DCL 数据控制语言):对用户权限的设置

DDL 操作数据库

语法:
create database 数据库名 [character set 字符集] [collate 校对规则] 注: [ ] 意思是可选的意思


	-- 创建一个student数据库
	create database student;

	-- 创建一个teacher的数据库,指定字符集为gbk
	create database teacher character set gbk;

查看所有数据库_

	
	-- 查看所有数据库
	show databases;

删除数据库_


	-- 删除数据库
	drop database 数据库名
	
	-- 删除student数据库 
	drop database student;

修改数据库_


	-- 修改数据库
	alter database 数据库名 character set 字符集
	
	-- 把teacher的字符集改为utf-8
	alter database teacher character set utf8;

切换数据库_

	
	-- 切换数据库
	use 数据库名 

	-- 使用teacher数据库
	use teacher;

查看正在使用的数据库_


	-- 查看正在使用的数据库
	select database();

DDL 操作表

  • 表的数据类型
    • int / bigint
    • float / double
    • char / varchar (char 固定长度 varchar 可变长度)
    • date / datetime (date 日期 datetime 日期和时间)
约束约束关键字
主键primary key
唯一unique
非空not null

约束各类_

  • not null:非空 username varchar(40) not null; username这个列不能有null值
  • unique:唯一约束, 后面的数据不能和前面重复cardNo char(18) unique; cardNo 列里面不可以有重复数据
  • primary key:主键约束(非空+唯一) 一般用在表的id列上面. 一张表基本上都有id列的, id列作为唯一标识的
    • auto_increment:自动增长,必须是设置了primary key之后,才可以使用auto_increment

创建表_


	create table (
	 类型 [约束],
	 类型 [约束]
	...	
	);

	-- 创建一张学生表
	create table student(
	id int primary key auto_increment,
	name varchar(40),
	sex int
	);

	-- 给学生表增加一个grade字段
	alter table student add grade varchar(20) not null;

	-- 把学生表的sex字段改成字符串类型
	alter table student modify sex varchar(10);

	-- 把学生表的grade字段修改成class字段
	alter table student change grade class varchar(20);
	
	-- 把class字段删除
	alter table student drop class;

	-- 把学生表修改成老师表
	rename table student to teacher;

删除表_


	-- 删除表
	drop table 表名

	-- 把teacher表删除
	drop table teacher;

DML 操作表记录(对增删改)

插入数据_


	-- 插入指定列 如果没有把这个列进行列出来, 以null进行自动赋值(如果没有插入了列设置了非空约束, 会报错)
	insert into student(name,sex) values ('张三','男');

	-- 插入所有的列
	insert into student values (null,'李四','女');

更新记录_

语法:
update 表 set 列 =值, 列 =值 [where 条件]

	
	-- 把张三改为小马
	update student set name = '小马' where name = '张三';

	-- 把小马的年龄加二
	update student set age = age + 2 where name = '小马';

删除记录_

语法:
delete from 表 [where 条件]

		
	-- 把name为小马的记录删除
	delete from student where name = '小马';

	-- 删除表中所有记录
	delete from 表名

DQL操作表记录(查询)

基本查询语法:
select [*] [列名 ,列名] [列名 as 别名 ...] [distinct 字段] from 表名 [where 条件]

简单查询_


	-- 查询所有的列的记录
	select * from 表名

	-- 查询student表的所有列的记录
	select * from student;

查询某张表特定列的记录_

	
	-- 查询某张表特定列的记录
	select 列名,列名,列名... from 

	-- 查询student表中name例的记录
	select name from student;

去重查询_


	-- 去重查询
	select distinct 字段名 from 表名

	-- student表name去重查询
	select distinct name from student;

别名查询 _


	-- 别名查询
	select distinct 字段名 as 别名 from 表名

	-- student表别名查询
	select 别名.* from  as 别名

	-- student表name别名查询
	select distinct name as n from student;

运算查询(+,-,x,/等)_


	-- 把name为小马的年龄加2并查询
	select age + 2 from student where name = '小马';

条件查询_

语法:
select ... from 表 where 条件 // 取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回


	-- 把age大于10的记录取出
	select * from student where age > 10;

区间查询_

语法:
between...and...


	-- 把age在1030之间的数取出
	select * from student where age between 10 and 30;

语法:
in(值1,值2...)

	
	-- 把age为1918的值取出
	select * from student where age in (19,18);

语法:
like (模糊查询:一般和_或者%一起使用)

  • _ 占一位
  • % 占0或者n位

	-- 把name第一个字符为张长度不限的字符取出
	select * from student where name like '张%';

	-- 把name第一个字符为张长度为2的字符取出
	select * from student where name like '张_';

语法:
and 多条件同时满足


	-- 满足name为张三,age为18的记录取出
	select * from student where name = '张三' and age = 18;

语法:
or 任意条件满足


	满足name为张三或者age为18的记录取出
	select * from student where name = '张三' or age = 18;

聚合函数

  • 聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个结果值 ,聚合函数会忽略空值NULL
聚合函数作用
max(列名)求这一列的最大值
min(列名)求这一列的最小值
avg(列名)求这一列的平均值
count(列名)统计这一列有多少条记录
sum(列名)对这一列求总和

语法:
select 聚合函数(列名) from 表名 [where 条件]


	-- 求student表中age的最大值
	select max(age) from student;

	-- 求student表中age的最小值
	select min(age) from student;

	-- 求student表中age的平均值
	select age(age) from student;

	-- 求student表中id的个数
	select count(id) from student;

	-- 求student表中age的合
	select sum(age) from student;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值