MySQL

mysql 基础学习crud

一. 数据库的介绍

1.1 什么是数据库

数据库就是存储数据的仓库。数据库的本质就是一个文件系统,方便我们管理数据。

1.2 数据库管理系统

数据库管理系统(DataBase Management System,DBMS):指的是操作和管理数据库的大型软件。

1.3 Java类和数据表的对应关系

一 一映射

1.4 常见的数据库

1. mysql:开源免费的中小型数据库 。sun公司已经被Oracle给收购了。Mysql6.XX版本开始就收费了。
2. oracle:收费的大型数据库,是Oracle公司的。
3. DB2:IBM公司的产品,收费的,常用在银行系统。
4. SQL Server:微软公司的产品。
5. SyBase:已经淘汰了。
6. SQLite:应用在手机端

二. Mysql的使用

2.1 安装

略,自行百度

2.2 服务

mysql是以服务的方式让我们使用的。

操作服务的方式:
	1. win+r输入services.msc
	2. 在控制台输入命令
		启动数据库服务:net start mysql
		停止数据库服务:net stop mysql

2.3 登录

如果要进行登录,需要打开控制台,在控制台输入命令。

安装好mysql后,默认的用户名是root,是最高级别的管理员账户。密码是自己设置的。

明文登录:
	mysql -u用户名 -p密码
密文登录:
	mysql -u用户名 -p回车 然后输入密码
远程登录:
	mysql -h主机地址 -u用户名 -p密码

三. SQL语句

3.1 SQL语句的介绍

sql叫做结构化查询语言(structured query language)
我们可以通过sql语句对数据库进行操作,比如查询,添加,删除,修改
我们以后操作数据库无非就是四种,增删改查(CRUD)

3.2 SQL方言

每一个数据库都支持标准sql和sql方言

3.3 sql语句的特点

1. sql语句可以单行或多行书写,以分号结尾。
2. 可以使用空格和缩进增加sql语句的阅读性。
3. MYSQL数据库的sql语句不区分大小写(windows),关键字建议大写。
4. 我们可以使用三种注释 -- 注释内容  # 注释内容  /* 注释内容 */

3.4 SQL语句的分类

1. DDL(Data Definition Language)数据定义语言 
		用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter等
	
2. DML(Data Manipulation Language)数据操作语言【重点】 
		用来对数据库中表的数据进行增删改。关键字:insert,delete, update等
	
3. DQL(Data Query Language) 数据查询语言【重点】 
		用来查询数据库中表的记录(数据)。关键字:select, where等

4. DCL(Data Control Language)数据控制语言
		用来定义数据库的访问权限和安全级别,及创建用户。关键字:grant,revoke等

5. TCL(Transaction Control Language) 事务控制语言
		用于控制数据库的事务操作,关键字; commit,savepoint,rollback等

四. DDL语句

4.1 DDL操作数据库

1. 创建数据库
	a. 直接创建数据库(记住)
		create database 数据库名;
	b. 判断是否存在并创建数据库(了解)
		create database if not exists 数据库名;
	c. 创建数据库并制定编码(了解)
		create database 数据库名 character set 字符集;
2. 查看数据库
	a. 查看当前mysql下有哪些数据库(记住)
		show databases;
	b. 查看数据库的创建信息(了解)
		show create database 数据库名;
3. 修改数据库
	a. 修改数据库的编码(了解)
		alter database 数据库名 default character set 字符集;
4. 删除数据库
	a. 直接删除数据库(了解)
		drop database 数据库名;
5. 使用数据库
	# 注意:使用的是哪个数据库,那么操作的就是哪个数据库下面的表
	a. 查看正在使用的数据库(了解)
		select database();
	b. 使用数据库(记住)
		use 数据库名;
  

例子:

-- 这是注释
# 这也是注释
/* 这也是注释 */

# 创建数据库
CREATE DATABASE mydb2;

# 删除数据库
DROP DATABASE mydb2;

# 查看mysql下面有哪些数据库
SHOW DATABASES;

# 查看正在使用哪个数据库
SELECT DATABASE();

# 使用数据库
USE mydb;


4.2 DDL操作数据表

1. 创建表:
	格式:
		create table 表名(
			字段名 数据类型(长度) [约束],
			字段名 数据类型(长度) [约束],
			字段名 数据类型(长度) [约束]
		);
	解释
        字段名就是列名。
        mysql的数据类型和java中的数据类型类似,都是用来对数据进行限制的。
        常用的数据类型:
            整数类型:int
            小数类型:double
            字符(串)类型:varchar
            时间类型:date(只有年月日,没有时分秒)
        在常用的数据类型中,如果是varchar类型,必须指定长度,其他类型可以省略长度

        约束用来对列的数据进行限制,约束是可选的,可以写,也可以不写。目前省略
2. 查看表
 	a.查看当前数据库下面有哪些表
		show tables;
	b.查看表的详情信息
		desc 表名
	c.查看创建表的sql语句
		show create table 表名;
3. 创建一个和原来表结构相同的表
	格式:
		create table 新表名 like 旧表名;
4. 删除表
	a. 直接删除表
		drop table 表名;
	b. 如果表存在,再删除
		drop table if exists 表名;
5. 修改表结构
	a. 添加列
		alter table 表名 add 列名 数据类型(长度) [约束];
	b. 修改列
		alter table 表名 modify 列名 数据类型(长度) [约束];
	c. 修改列名
		alter table 表名 change 旧列名 新列名 数据类型(长度) [约束];
	d. 删除列
		alter table 表名 drop 列名;
	e. 修改表名
		rename table 旧表名 to 新表名;
	f. 修改表的字符集
		alter table 表名 character set 字符集;

例子

/*
	创建表:
		格式:
			create table 表名(
				字段名 数据类型(长度) [约束],
				字段名 数据类型(长度) [约束],
				字段名 数据类型(长度) [约束]
			);
	解释
		字段名就是列名。
		mysql的数据类型和java中的数据类型类似,都是用来对数据进行限制的。
		常用的数据类型:
		    整数类型:int
		    小数类型:double
		    字符(串)类型:varchar
		    时间类型:date(只有年月日,没有时分秒)
		在常用的数据类型中,如果是varchar类型,必须指定长度,其他类型可以省略长度

		约束用来对列的数据进行限制,约束是可选的,可以写,也可以不写。目前省略
*/
# 一. 创建表
# 创建表之前需要使用数据库,使用的是哪个数据库,就是在哪个数据库下面创建表
USE mydb;
# 数据表和列名起名字时建议全部都小写,如果有多个单词使用下划线隔开。
# 创建student表,给出id,name,age,address(列)
# 如果关键字当做列表或表名,建议使用`包裹
CREATE TABLE student(
	id INT, -- 定义了id列(字段)
	`name` VARCHAR(10), -- 定义了name列(字段)
	age INT, -- 定义了age列(字段)
	address VARCHAR(10) -- 定义了address列(字段)
);

# 二. 查看表
# 查看当前数据库下面有哪些表
SHOW TABLES;

# 查看表的详情信息
# desc 表名
DESC student;

# 查看创建表的sql语句
# show create table 表名;
SHOW CREATE TABLE student;

# 三.创建一个和原来表结构相同的表
# create table 新表名 like 旧表名;
CREATE TABLE teacher LIKE student;

# 四. 删除表
# 直接删除表
# drop table 表名;
DROP TABLE teacher;

# 如果表存在,再删除
# drop table if exists 表名;
DROP TABLE IF EXISTS student;

# 五.修改表结构
# 添加列
# alter table 表名 add 列名 数据类型(长度) [约束];
ALTER TABLE student ADD sex VARCHAR(10);

# 修改列
# alter table 表名 modify 列名 数据类型(长度) [约束];
ALTER TABLE student MODIFY sex INT;

# 修改列名
# alter table 表名 change 旧列名 新列名 数据类型(长度) [约束];
ALTER TABLE student CHANGE sex gender VARCHAR(10);

# 删除列
# alter table 表名 drop 列名;
ALTER TABLE student DROP gender;

# 修改表名
# rename table 旧表名 to 新表名;
RENAME TABLE student TO stu;
RENAME TABLE stu TO student;

# 修改表的字符集
# alter table 表名 character set 字符集;
ALTER TABLE student CHARACTER SET gbk;

五. DML语句(重点)

DML可以对数据库中的数据进行增删改操作

5.1 添加操作(insert)

1. 全列名添加
	格式:
		insert into 表名 (列1, 列2, 列3) values (值1, 值2, 值3);
2. 全列值添加
	格式:
		insert into 表名 values (值1, 值2, 值3);
3. 指定列添加(常用)
	格式:
		insert into 表名 (列1, 列3) values (值1, 值3);
4. 批量添加
	格式:
		insert into 表名 (列1, 列2, 列3) values (值1, 值2, 值3), (值1, 值2, 值3);

例子

/*
	如果要向数据表中添加数据,我们可以使用insert关键字完成.
*/
# 创建表
CREATE TABLE student(
	id INT, 
	`name` VARCHAR(10),
	age INT,
	address VARCHAR(10)
);
# 开始添加
# 一. 全列名添加
# insert into 表名 (列1, 列2, 列3) values (值1, 值2, 值3);
# 在添加的时候,列和值必须严格对应
# 在添加数据时,如果不是数值类型,那么要使用引号包裹,可以使用单引号,也可以使用双引号,建议使用单引号。
# 添加的数据不要超过长度
# 如果添加空值,使用null
INSERT INTO student (id, `name`, age, address) VALUES (1, '张师傅', 100, '武当');
INSERT INTO student (id, `name`, age, address) VALUES (2, '灭绝师太', 50, '峨眉');
INSERT INTO student (id, `name`, age, address) VALUES (3, "金花婆婆", 3, '峨眉');
INSERT INTO student (id, `name`, age, address) VALUES (4, "杨过", 30, '哈哈哈哈哈嘿嘿嘿嘿嘿嘎嘎嘎嘎嘎');
INSERT INTO student (id, `name`, age, address) VALUES (5, '金毛狮王', 20, NULL);

# 二. 全列值添加
# insert into 表名 values (值1, 值2, 值3);
INSERT INTO student VALUES (6, '小龙女', 30, '龙宫');

# 三. 指定列添加(常用的)
# insert into 表名 (列1, 列3) values (值1, 值3);
INSERT INTO student (id, `name`) VALUES (7, '东海龙王');
INSERT INTO student (`name`, age) VALUES ('孙悟空', 1000);

# 四. 批量添加
# insert into 表名 (列1, 列2, 列3) values (值1, 值2, 值3), (值1, 值2, 值3);
INSERT INTO student (id, `name`, age, address) VALUES (7, '东海龙王', 200, '东海龙宫'), (8, '孙悟空', 300, '花果山');

5.2 蠕虫复制(了解)

蠕虫复制可以将一个表中的数据复制到另外一张表中。
	格式:
		insert into 表A select * from 表B;

例子

/*
	蠕虫复制可以将一个表中的数据复制到另外一张表中。
	格式:
		insert into 表A select * from 表B;
*/

# 在蠕虫复制前,必须有一个结构一模一样的表
CREATE TABLE teacher LIKE student;

# 将student表中的数据复制到teacher表中
INSERT INTO teacher SELECT * FROM student;

5.3 修改操作(update)

如果要修改表中的数据,那么可以使用update关键字去完成

格式:
	update 表名 set 列=值,列=值 [where 条件];

注意:
    where条件可以省略,如果省略条件,会对表中所有的数据进行修改。
	如果要修改指定的数据,需要加上where条件如果要修改表中的数据,那么可以使用update关键字去完成
格式:
	update 表名 set 列=值,列=值 [where 条件];

注意:
	where条件可以省略,如果省略条件,会对表中所有的数据进行修改。
	如果要修改指定的数据,需要加上where条件

例子

/*
	如果要修改表中的数据,那么可以使用update关键字去完成
	格式:
		update 表名 set 列=值,列=值 [where 条件];
	
	注意:
		where条件可以省略,如果省略条件,会对表中所有的数据进行修改。
		如果要修改指定的数据,需要加上where条件
*/

# 将student表中age这一列的数据都改为30
UPDATE student SET age=30;

# 将student表中id为6的学生age改成18
UPDATE student SET age=18 WHERE id = 6;

# 将student表中id是8的学生age改成1000,address改成西天
UPDATE student SET age=1000, address='西天' WHERE id = 8;

5.4 删除操作(delete)

如果要删除数据,可以使用delete关键字完成。

	
格式:
    delete from 表名 [where 条件];
注意:
    where条件可以省略,如果省略where条件会删除表中所有的数据。
    如果只想删除指定的数据,需要加上where条件

例子

/*
	如果要删除数据,可以使用delete关键字完成。
	格式:
		delete from 表名 [where 条件];
	注意:
		where条件可以省略,如果省略where条件会删除表中所有的数据。
		如果只想删除指定的数据,需要加上where条件
		
*/
# 删除student表中所有的数据
DELETE FROM student;

# 删除student表中id是6的数据
DELETE FROM student WHERE id = 6;

# 我们也可以使用truncate关键字进行删除。
# truncate会删除表所有的数据
# truncate table 表名;
TRUNCATE TABLE student;

六. DQL语句(重点)

DQL可以对表中的数据进行查询

在进行查询之前把资料中的数据导入到mysql中

6.1 简单查询

如果想要查询数据,可以使用select关键字去完成。

1. 查询表中所有的数据
	select * from 表名;
2. 指定列查询
	select 列名,列名 from 表名;
3. 别名查询
 	select 列名 as 别名, 列名 as 别名 from 表名;
	select 列名 别名, 列名 别名 from 表名;
4. 去重查询
	select distinct 要去重的列 from 表名;
5. 计算查询
	select 列名 + 值 from 表名;

例子

# 如果表存在,就删除
DROP TABLE IF EXISTS student;
# 创建表
CREATE TABLE student (
	id INT,
	`name` VARCHAR(20),
	age INT,
	sex VARCHAR(5),
	address VARCHAR(100),
	math INT,
	english INT
);
# 添加数据
INSERT INTO student(id,NAME,age,sex,address,math,english) VALUES (1,'马云',55,'男','杭州',66,78),
(2,'马化腾',45,'女','深圳',98,87),(3,'马景涛',55,'男','香港',56,77),(4,'柳岩',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),(8,'德玛西亚',18,'男','南京',56,65);

# 如果想要查询数据,可以使用select关键字去完成。
# 一. 查询表中所有的数据
# select * from 表名;
# *表示所有的列
SELECT * FROM student;

# 二. 指定列查询
# select 列名,列名 from 表名;
# 查询表中所有的姓名,年龄,性别
SELECT `name`,age,sex FROM student;

# 三. 别名查询
# 别名查询指的是将查询后的结果重新起一个名字(可以重新起一个列名,也可以重新起一个表名)
# select 列名 as 别名, 列名 as 别名 from 表名;
# 查询表中所有的name和age,并将查询后的列定义别名
SELECT `name` AS 姓名, age AS 年龄 FROM student;
SELECT `name` AS '姓名', age AS '年龄' FROM student;
# 在别名查询时,也可以省略as关键字
# select 列名 别名, 列名 别名 from 表名;
SELECT `name` 姓名,age 年龄 FROM student;
# 不仅可以给查询后的列定义别名,也可以给表定义别名
# 查询student表中所有的数据,并给表定义别名
# select * from 表名 as 别名;
# select * from 表名 别名;
SELECT * FROM student AS 学生表;
SELECT * FROM student 学生表;

# 四. 去重查询
# 可以将查询后的结果进行去重
# select distinct 要去重的列 from 表名;
# 查询表中所有的年龄信息
SELECT DISTINCT age FROM student;
# 我们也可以对多个列进行去重
# 查询表中所有的姓名和年龄,并去重
# 如果distinct后面写了多个列,表示对多个列进行去重。必须保证这些列中的数据完全相同才能进行去重操作。
SELECT DISTINCT `name`,age FROM student;

# 五. 计算查询
# 可以对查询后的结果进行计算操作
# select 列名 + 值 from 表名;
# 查询表中所有的姓名和年龄,并将年龄加上100进行显示
SELECT `name`,age + 100 FROM student;
# 别名优化
SELECT `name`,age + 100 AS age FROM student;
# 查询表中所有的姓名以及总成绩(math+english的成绩)
SELECT `name`, math + english FROM student;

# mysql中数值和NULL值相加的结果是NULL
# 我们可以使用ifnull这个函数来解决NULL值和数值相加的问题。
# ifnull(值1, 值2)
# 先判断值1是否是null,如果值1不是null,那么整个ifnull函数的值就是值1
# 如果值1的值是null,那么整个ifnull函数的值就是值2
# 使用ifnull判断english,如果english不是null,就使用english的值进行运算。如果english是null,使用0运算
SELECT `name`, math + IFNULL(english, 0) FROM student;
# 别名优化
SELECT `name`, math + IFNULL(english, 0) AS score FROM student;

6.2 条件查询

6.2.1 比较运算符
/*
	条件查询
	条件查询可以查询出满足条件的数据。
	条件查询要结合运算符使用。
	
	比较运算符:
		>:大于
		>=:大于等于
		<:小于
		<=:小于等于
		=:等于
		!=:不等于
		<>:不等于
	特殊:
		NULL值不能用=进行比较,要使用is
		IS NULL:判断是空值
		IS NOT NULL:判断不是空值
		
	条件查询的格式:
		select * from 表名 where 条件;
*/
# 1. 查询math成绩大于80的学生信息
SELECT * FROM student WHERE math > 80;

# 2. 查询english成绩小于等于80的学生信息
SELECT * FROM student WHERE english <= 80;

# 3. 查询age等于20的学生信息
SELECT * FROM student WHERE age = 20;

# 4. 查询age是20的学生的姓名以及性别
SELECT `name`,sex FROM student WHERE age = 20;

# 5. 查询age不是20的学生信息
SELECT * FROM student WHERE age != 20;
SELECT * FROM student WHERE age <> 20;

# 6. 查询英语成绩是null的学生信息
SELECT * FROM student WHERE english IS NULL;

# 7. 查询英语成绩不是null的学生信息
SELECT * FROM student WHERE english IS NOT NULL;

6.2.2 逻辑运算符
/*
	逻辑运算符
		and:与。必须全部都成立,结果才成立。相当于Java中的&&
		or:或。只要有一个成立,结果就成立。相当于Java中的||
		not:非。相当于Java中的!
		
		in(...):包含。只要包含in中的任何一个数据就算满足条件。
		         比如,in(1,3,5)只要数据1,3,5中的一个就是满足要求
*/
# 1.查询age大于35并且性别是男的学生信息(两个条件必须全部满足)
SELECT * FROM student WHERE age > 35 AND sex = '男';

# 2.查询age大于35或者性别是男的学生信息(只需要满足一个条件即可)
SELECT * FROM student WHERE age > 35 OR sex = '男';

# 3.查询id是1或3或5的学生
SELECT * FROM student WHERE id = 1 OR id = 3 OR id = 5;
# 使用in运算符
SELECT * FROM student WHERE id IN(1,3,5); 

# 4.查询id不是1或3或5的学生
SELECT * FROM student WHERE id NOT IN(1,3,5); 
6.2.3 范围查询
/*
	范围查询
	格式:
		between ... and ...:可以进行范围的查询。
	举例:
		between 3 and 10:查询3到10范围内的数据。包含3,也包含10
*/
# 查询english成绩大于等于77,并且小于等于87的学生信息
SELECT * FROM student WHERE english >= 77 AND english <= 87;
SELECT * FROM student WHERE english BETWEEN 77 AND 87;
6.2.4 模糊查询
/*
	模糊查询
	
	模糊查询要使用like关键字实现,在模糊查询中还需要使用统配符进行查询。
	统配符:
		%:任意个任意字符。
		_:一个任意字符。
	模糊查询的格式:
		select * from 表名 where 字段 like '带有统配符的字符串';
	%使用的小技巧
		'马%':匹配以马开头的
		'%马':匹配以马结尾的
		'%马%':匹配包含马的
*/

# 1. 查询姓马的学生
# 姓马表示名字以马开头了,名字的第一个字肯定是马,剩下的内容可以是任意个任意字符
SELECT * FROM student WHERE `name` LIKE '马%';

# 2. 查询姓名中包含德的学生信息
# 包含德,名字的第一个字可以是德,中间的字也可以是德,最后的字也可以是德.
SELECT * FROM student WHERE `name` LIKE '%德%';

# 3. 查询姓马的,名字必须是3个字的学生信息 
# 姓马的,名字是三个字的,表示马后面要有两个字
SELECT * FROM student WHERE `name` LIKE '马__'; -- 后面有两个下划线,每一个下划线都表示一个任意字符

6.3 排序查询

/*
	排序查询
	排序查询可以将查询后的结果根据指定的字段进行排序
	排序查询要使用order by 关键字完成。
	格式:
		select * from 表名 order by 要排序的字段 [asc | desc];
		
	asc:表示升序排序。
	desc:表示降序排序。
	
	asc和desc可以省略,如果省略,默认是按照升序排序。
	
	组合排序(对多个字段进行排序)
		如果使用组合排序,就表示对多个字段进行了排序,如果第一个字段的值相同,就再根据第二个字段排序
	格式:
		select * from 表名 order by 字段A [asc | desc], 字段B [asc|desc];	
*/
# 1. 查询所有的学生信息,并按照年龄从小到大进行排序
SELECT * FROM student ORDER BY age ASC;
# 也可以省略asc,如果省略asc,默认也是升序排序
SELECT * FROM student ORDER BY age;
# 2. 查询所有的学生信息,并按照年龄从大到小进行排序
SELECT * FROM student ORDER BY age DESC;
# 3. 查询所有学生信息,先对年龄进行降序排序,如果年龄相同,再根据数学成绩升序排序
SELECT * FROM student ORDER BY age DESC, math ASC;


6.4 聚合函数

/*
	聚合函数
	我们之前的查询都是横向查询,聚合函数是纵向查询
	
	count(列):查询该列的数据条数。不统计NULL值
	sum(列):查询该列的数据和
	avg(列):查询该列数据的平均值
	max(列):查询该列数据的最大值
	min(列):查询该列数据的最小值
	
	使用格式:
		select 聚合函数 from 表名;
*/
# 一. 查询name这一列有多少条数据
SELECT COUNT(`name`) FROM student;

# 二. 查询english这一列有多少条数据
SELECT COUNT(english) FROM student;

# 三. 查询学生表中有多少条数据
# 如果查询表中有多少条记录,可以使用count(*)
SELECT COUNT(*) FROM student;

# 四. 查询年龄大于40的学生的数量
SELECT COUNT(*) FROM student WHERE age > 40;

# 五. 查询数学成绩的总分
SELECT SUM(math) FROM student;

# 六. 查询数学成绩的平均分
SELECT AVG(math) FROM student;

# 七. 查询数学成绩的最高分
SELECT MAX(math) FROM student;

# 八. 查询数学成绩的最低分
SELECT MIN(math) FROM student;

6.5 分组查询

/*
	要求:查询每个性别的数学成绩的总和
	如果要查询每个性别的数学成绩的总和,那么我们可以先根据性别进行分组,分组之后再进行查询。
	如果要进行分组,可以使用group by关键字。
	分组查询一定要结合聚合函数使用。
	
	格式:
		select 聚合函数 from 表名 group by 要分组的字段;
	
	如果要在分组之后进行条件筛选,不能使用where关键字,要使用having
	having和where都用作条件筛选
		where:用在分组之前。where后面不能写聚合函数
		having:用在分组之后。having后面可以写聚合函数。
*/
# 一. 查询每个性别的数学成绩的总和
select sex,sum(math) from student group by sex;

# 二. 查询每个性别有多少人
# 根据性别进行分组,查询每个分组有多少条数据。
select sex,count(*) from student group by sex;

# 三. 查询每个性别中年龄大于25岁的人数
# 查询年龄大于25岁的人,按照性别进行分组,统计每个分组的人数
select sex, count(*) from student where age > 25 group by sex;

# 四. 查询每个性别中年龄大于25岁的人数,只显示人数大于2的数据.
# 查询年龄大于25岁的人,按照性别进行分组,统计每个分组的人数,再筛选出人数大于2的数据。
SELECT sex, COUNT(*) FROM student WHERE age > 25 GROUP BY sex having count(*) > 2;


6.6 分页查询

在进行分页查询之前,先把资料中的sql语句导入到mysql中

/*
	分页查询
	limit可以查询显示一部分数据,使用场景就是进行分页查询。
	格式:
		limit m,n:从第m条开始显示,一共显示n条记录.
		
	注意:
		m也可以省略,如果m省略,默认是从第0条开始显示。
		limit 5:从第0条开始显示,一共显示5条数据
*/

# 查询第一页数据(每页显示五条记录)
SELECT * FROM student LIMIT 0,5; -- 从第0条(从0计数的)数据开始显示,一共显示5条记录
SELECT * FROM student LIMIT 5;

# 查询第二页数据 (每页显示五条记录)
SELECT * FROM student LIMIT 5,5; -- 从第5条(从0计数的)数据开始显示,一共显示5条记录

# 查询第三页的数据(每页显示五条记录)
SELECT * FROM student LIMIT 10,5; -- 从第10条(从0计数的)数据开始显示,一共显示5条记录

重点

最重点:insert delete update select(必须掌握,必须会要会写)

重点:知道每种约束的作用,能够添加主键约束,并设置自动增长。

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值