mysql创课程表tno是什么_MySQL-SQL基础应用

2023-11-10 12:10

本文主要是介绍mysql创课程表tno是什么_MySQL-SQL基础应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如果您对数据库感兴趣,可以添加 DBA解决方案QQ群:855439640

1、SQL介绍

结构化查询语言

5.7 以后符合SQL92严格模式 (一种规范 --- 关系型数据库的SQL)通过sql_mode参数来控制

2、常用SQL分类

DDL:数据定义语言

DCL:数据控制语言

DML:数据操作语言

DQL:数据的查询语言

SQL引入--数据库的逻辑结构

库名字

库属性:字符集,校对规则(排序规则)

表名

表属性:存储引擎类型,字符集,校对规则(排序规则)

列名

列属性:数据类型,约束,其他属性

数据行

3、数据类型、表属性、字符集

3.1 数据类型

3.1.1 作用

保证数据的准确性和标准性。

3.1.2 种类

数值类型

8bd14dc42e3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

tinyint : -128~127 (1个字节)

int :-2^31~2^31-1 (4个字节)

说明:手机号是无法存储到int的。一般是使用char类型来存储收集号

字符类型

8bd14dc42e3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

char(100)

定长字符串类型,不管字符串长度多长,都立即分配100个字符长度的存储空间,未占满的空间使用"空格"填充

varchar(100)

变长字符串类型,每次存储数据之前,都要先判断一下长度,按需分配此盘空间.

会单独申请一个字符长度的空间存储字符长度(少于等于255,如果超过255以上,会占用两个存储空间)

enum('bj','tj','sh'):

枚举类型,比较适合于将来此列的值是固定范围内的特点,可以使用enum,可以很大程度的优化我们的索引结构。

时间类型

8bd14dc42e3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

列值不能为空,也是表设计的规范,尽可能将所有的列设置为非空。可以设置默认值为0

DATETIME

范围为从 1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999。

TIMESTAMP

1970-01-01 00:00:00.000000 至 2038-01-19 03:14:07.999999。

timestamp会受到时区的影响

二进制类型

8bd14dc42e3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

3.2 表属性

3.2.1 列属性

约束(一般建表时添加):

**primary key** :主键约束

设置为主键的列,此列的值必须非空且唯一,主键在一个表中只能有一个,但是可以有多个列一起构成。

**not null** :非空约束

列值不能为空,也是表设计的规范,尽可能将所有的列设置为非空。可以设置默认值为0

**unique key** :唯一键

列值不能重复

**unsigned** :无符号

针对数字列,非负数。

其他属性:

**key** :索引

可以在某列上建立索引,来优化查询,一般是根据需要后添加

**default** :默认值

列中,没有录入值时,会自动使用default的值填充

**auto_increment**:自增长

针对数字列,顺序的自动填充数据(默认是从1开始,将来可以设定起始点和偏移量)

**comment ** : 注释

3.2.2 表的属性

存储引擎:

InnoDB(默认的)

字符集和排序规则:

utf8

utf8mb4

3.3 字符集和校对规则

3.3.1 字符集

show charset;

utf8 一个字符最多3个字节

utf8mb4 (建议) 一个字符最多4个字节,支持emoji

举例:

varchar(20) utf8mb4

1. 能存20个任意字符

2. 不管存储的时字符,数字,中文,都1个字符最大预留长度是4个字节

3. 对于中文,1个占4个字节

4. 对于数字和字母,1个实际占用大小是1个字节

select length() from test; 查看列值的字节长度

3.3.2 校对规则(排序规则)

mysql> show collation;

对于英文字符串的,大小写的敏感

utf8mb4_general_ci 大小写不敏感

utf8mb4_bin 大小写敏感(存拼音,日文)

主要用于查询

4、DDL应用 (数据定义语言)

4.2 库定义

4.2.1 创建

4.2.1 创建数据库

create database school;

create schema sch;

show charset;

show collation;

CREATE DATABASE test CHARSET utf8;

create database oldboy charset utf8mb4 collate utf8mb4_bin;

建库规范:

1.库名不能有大写字母

2.建库要加字符集

3.库名不能有数字开头

4.库名要和业务相关

建库标准语句

mysql> create database db charset utf8mb4;

mysql> show create database xuexiao;

4.2.2 删除(生产中禁止使用)

mysql> drop database oldboy;

4.2.3 修改

SHOW CREATE DATABASE school;

ALTER DATABASE school CHARSET utf8;

注意:修改字符集,修改后的字符集一定是原字符集的严格超集

4.2.4 查询库相关信息(DQL)

show databases;

show create database oldboy;

4.3 表定义

4.3.1 创建

--- 建表

表名,列名,列属性,表属性

--- 列属性

PRIMARY KEY : 主键约束,表中只能有一个,非空且唯一.

NOT NULL : 非空约束,不允许空值

UNIQUE KEY : 唯一键约束,不允许重复值

DEFAULT : 一般配合 NOT NULL 一起使用.

UNSIGNED : 无符号,一般是配合数字列,非负数

COMMENT : 注释

AUTO_INCREMENT : 自增长的列

create table stu(

列1 属性(数据类型、约束、其他属性) ,

列2 属性,

列3 属性

)

4.3.2 建表

USE school;

CREATE TABLE stu(

id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',

sname VARCHAR(255) NOT NULL COMMENT '姓名',

sage TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',

sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' ,

sfz CHAR(18) NOT NULL UNIQUE COMMENT '身份证',

intime TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'

) ENGINE=INNODB CHARSET=utf8 COMMENT '学生表';

建表规范:

--- 1. 表名小写字母,不能数字开头,

--- 2. 不能是保留字符,使用和业务有关的表名

--- 3. 选择合适的数据类型及长度

--- 4. 每个列设置 NOT NULL + DEFAULT .对于数字用0填充,对于字符使用有效字符串填充

--- 5. 每个列设置注释

--- 6. 表必须设置存储引擎和字符集

--- 7. 主键列尽量是无关列数字列,最好是自增长

--- 8. enum类型不要保存数字,只能是字符串类型

查询建表信息

SHOW TABLES;

SHOW CREATE TABLE stu;

DESC stu;

创建一个表结构一样的表

CREATE TABLE test LIKE stu;

4.3.2 删除(生产中禁用命令)

drop table t1;

4.3.3 修改

在stu表中添加qq列

DESC stu;

ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL UNIQUE COMMENT 'qq号';

在sname后加微信列

ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE COMMENT '微信号' AFTER sname ;

在id列前加一个新列num

ALTER TABLE stu ADD num INT NOT NULL COMMENT '数字' FIRST;

DESC stu;

把刚才添加的列都删掉(危险)

ALTER TABLE stu DROP num;

ALTER TABLE stu DROP qq;

ALTER TABLE stu DROP wechat;

DESC stu;

修改sname数据类型的属性

ALTER TABLE stu MODIFY sname VARCHAR(128) NOT NULL ;

将sgender 改为 sg , 数据类型改为 CHAR 类型

ALTER TABLE stu CHANGE sgender sg CHAR(1) NOT NULL DEFAULT 'n' ;

DESC stu;

4.3.4 表属性查询(DQL)

use school

show tables;

desc stu;

show create table stu;

5. DCL应用 ****

grant

revoke

grant all on *.* to root@'10.0.0.%' identified by '123' with grant option;

revoke delete on app.* from app@'10.0.0.%';

6. DML应用

6.1 作用

对表中的数据行进行增、删、改

6.2 insert

--- 最标准的insert语句

INSERT INTO stu(id,sname,sage,sg,sfz,intime)

VALUES (1,'zs',18,'m','123456',NOW());

SELECT * FROM stu;

--- 省事的写法

INSERT INTO stu

VALUES

(2,'ls',18,'m','1234567',NOW());

--- 针对性的录入数据

INSERT INTO stu(sname,sfz)

VALUES ('w5','34445788');

--- 同时录入多行数据

INSERT INTO stu(sname,sfz)

VALUES

('w55','3444578d8'),

('m6','1212313'),

('aa','123213123123');

SELECT * FROM stu;

6.3 update

DESC stu;

SELECT * FROM stu;

UPDATE stu SET sname='zhao4' WHERE id=2;

注意:update语句必须要加where。

6.4 delete(危险!!)

DELETE FROM stu WHERE id=3;

全表删除:

DELETE FROM stu

truncate table stu;

区别:

delete: DML操作, 是逻辑性质删除,逐行进行删除,速度慢.

truncate: DDL操作,对与表段中的数据页进行清空,速度快.

伪删除:用update来替代delete,最终保证业务中查不到(select)即可

1.添加状态列

ALTER TABLE stu ADD state TINYINT NOT NULL DEFAULT 1 ;

SELECT * FROM stu;

2. UPDATE 替代 DELETE

UPDATE stu SET state=0 WHERE id=6;

3. 业务语句查询

SELECT * FROM stu WHERE state=1;

7. DQL应用(select )

7.1 单独使用

-- select @@xxx 查看系统参数

SELECT @@port;

SELECT @@basedir;

SELECT @@datadir;

SELECT @@socket;

SELECT @@server_id;

show variables like 'innodb%';

select 通用语法(单表)

select 列

from 表

where 条件

group by 条件

having 条件

order by 条件

limit

-- select 函数();

SELECT NOW();

SELECT DATABASE();

SELECT USER();

SELECT CONCAT("hello world");

SELECT CONCAT(USER,"@",HOST) FROM mysql.user;

SELECT GROUP_CONCAT(USER,"@",HOST) FROM mysql.user;

https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html?tdsourcetag=s_pcqq_aiomsg

7.2 单表子句-from

SELECT 列1,列2 FROM 表

SELECT * FROM 表

例子:

-- 查询stu中所有的数据(不要对大表进行操作)

SELECT * FROM stu ;

-- 查询stu表中,学生姓名和入学时间

SELECT sname , intime FROM stu;

=====================

带大家学单词:

world ===>世界

city ===>城市

country ===>国家

countrylanguage ===>国家语言

city:城市表

DESC city;

ID : 城市ID

NAME : 城市名

CountryCode: 国家代码,比如中国CHN 美国USA

District : 区域

Population : 人口

SHOW CREATE TABLE city;

SELECT * FROM city WHERE id<10;

======================

7.3 单表子句-where

SELECT col1,col2 FROM TABLE WHERE colN 条件;

7.3.1 where配合等值查询

例子:

-- 查询中国(CHN)所有城市信息

SELECT * FROM city WHERE countrycode='CHN';

-- 查询北京市的信息

SELECT * FROM city WHERE NAME='beijing';

-- 查询甘肃省所有城市信息

SELECT * FROM city WHERE district='gansu';

7.3.2 where配合比较操作符(> < >= <= <>)

例子:

-- 查询世界上少于100人的城市

SELECT * FROM city WHERE population<100;

7.3.3 where配合逻辑运算符(and or )

例子:

-- 中国人口数量大于500w

SELECT * FROM city WHERE countrycode='CHN' AND population>5000000;

-- 中国或美国城市信息

SELECT * FROM city WHERE countrycode='CHN' OR countrycode='USA';

7.3.4 where配合模糊查询

例子:

-- 查询省的名字前面带guang开头的信息

SELECT * FROM city WHERE district LIKE 'guang%';

注意:%不能放在前面,因为不走索引.

7.3.5 where配合in语句

-- 中国或美国城市信息

SELECT * FROM city WHERE countrycode IN ('CHN' ,'USA');

7.3.6 where配合between and

例子:

-- 查询世界上人口数量大于100w小于200w的城市信息

SELECT * FROM city WHERE population >1000000 AND population <2000000;

SELECT * FROM city WHERE population BETWEEN 1000000 AND 2000000;

7.4 group by + 常用聚合函数

7.4.1 作用

根据 by后面的条件进行分组,方便统计,by后面跟一个列或多个列

7.4.2 常用聚合函数

**max()** :最大值

**min()** :最小值

**avg()** :平均值

**sum()** :总和

**count()** :个数

group_concat() : 列转行

7.4.3 例子:

例子1:统计世界上每个国家的总人口数.

USE world

SELECT countrycode ,SUM(population) FROM city GROUP BY countrycode;

例子2: 统计中国各个省的总人口数量(练习)

SELECT district,SUM(Population) FROM city WHERE countrycode='chn' GROUP BY district;

例子3:统计世界上每个国家的城市数量(练习)

SELECT countrycode,COUNT(id) FROM city GROUP BY countrycode;

例子4:统计中国 每个省城市的名字列表GROUP_CONCAT()

guangdong guangzhou,shenzhen,foshan....

SELECT district, GROUP_CONCAT(NAME) FROM city WHERE countrycode='CHN' GROUP BY district ;

concat()用法

hebei : shijiazhuang,zhangjiakou,langfang...

fujian : fuzhou,quanzhou,xiamen...

SELECT CONCAT(district,":" ,GROUP_CONCAT(NAME)) FROM city WHERE countrycode='CHN' GROUP BY district ;

7.5 having

where|group|having

例子4:统计中国每个省的总人口数,只打印总人口数小于100

SELECT district,SUM(Population)

FROM city

WHERE countrycode='chn'

GROUP BY district

HAVING SUM(Population) < 1000000 ;

7.6 order by + limit

7.6.1 作用

实现排序,by后添加条件列

7.6.2 应用案例

查看中国所有的城市,并按人口数进行排序(从大到小)

SELECT * FROM city WHERE countrycode='CHN' ORDER BY population DESC;

统计中国各个省的总人口数量,按照总人口从大到小排序

SELECT district AS 省 ,SUM(Population) AS 总人口

FROM city

WHERE countrycode='chn'

GROUP BY district

ORDER BY 总人口 DESC ;

统计中国,每个省的总人口,找出总人口大于500w的,并按总人口从大到小排序,只显示前三名

SELECT district, SUM(population) FROM city

WHERE countrycode='CHN'

GROUP BY district

HAVING SUM(population)>5000000

ORDER BY SUM(population) DESC

LIMIT 3 ;

LIMIT N ,M --->跳过N行,显示一共M行

LIMIT 5,5

LIMIT N OFFSET M ---> 跳过M行,显示一共N行

SELECT district, SUM(population) FROM city

WHERE countrycode='CHN'

GROUP BY district

HAVING SUM(population)>5000000

ORDER BY SUM(population) DESC

LIMIT 5,5;

7.7 distinct:去重复

SELECT countrycode FROM city ;

SELECT DISTINCT(countrycode) FROM city ;

7.8 联合查询- union all

-- 中国或美国城市信息

SELECT * FROM city

WHERE countrycode IN ('CHN' ,'USA');

SELECT * FROM city WHERE countrycode='CHN'

UNION ALL

SELECT * FROM city WHERE countrycode='USA'

说明:一般情况下,我们会将 IN 或者 OR 语句 改写成 UNION ALL,来提高性能(索引等级)

UNION 去重复

UNION ALL 不去重复

7.9 join 多表连接查询

7.9.0 案例准备

按需求创建一下表结构:

use school

student :学生表

sno: 学号

sname:学生姓名

sage: 学生年龄

ssex: 学生性别

teacher :教师表

tno: 教师编号

tname:教师名字

course :课程表

cno: 课程编号

cname:课程名字

tno: 教师编号

score :成绩表

sno: 学号

cno: 课程编号

score:成绩

-- 项目构建

drop database school;

CREATE DATABASE school CHARSET utf8;

USE school

CREATE TABLE student(

sno INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',

sname VARCHAR(20) NOT NULL COMMENT '姓名',

sage TINYINT UNSIGNED NOT NULL COMMENT '年龄',

ssex ENUM('f','m') NOT NULL DEFAULT 'm' COMMENT '性别'

)ENGINE=INNODB CHARSET=utf8;

CREATE TABLE course(

cno INT NOT NULL PRIMARY KEY COMMENT '课程编号',

cname VARCHAR(20) NOT NULL COMMENT '课程名字',

tno INT NOT NULL COMMENT '教师编号'

)ENGINE=INNODB CHARSET utf8;

CREATE TABLE sc (

sno INT NOT NULL COMMENT '学号',

cno INT NOT NULL COMMENT '课程编号',

score INT NOT NULL DEFAULT 0 COMMENT '成绩'

)ENGINE=INNODB CHARSET=utf8;

CREATE TABLE teacher(

tno INT NOT NULL PRIMARY KEY COMMENT '教师编号',

tname VARCHAR(20) NOT NULL COMMENT '教师名字'

)ENGINE=INNODB CHARSET utf8;

INSERT INTO student(sno,sname,sage,ssex)

VALUES (1,'zhang3',18,'m');

INSERT INTO student(sno,sname,sage,ssex)

VALUES

(2,'zhang4',18,'m'),

(3,'li4',18,'m'),

(4,'wang5',19,'f');

INSERT INTO student

VALUES

(5,'zh4',18,'m'),

(6,'zhao4',18,'m'),

(7,'ma6',19,'f');

INSERT INTO student(sname,sage,ssex)

VALUES

('oldboy',20,'m'),

('oldgirl',20,'f'),

('oldp',25,'m');

INSERT INTO teacher(tno,tname) VALUES

(101,'oldboy'),

(102,'hesw'),

(103,'oldguo');

DESC course;

INSERT INTO course(cno,cname,tno)

VALUES

(1001,'linux',101),

(1002,'python',102),

(1003,'mysql',103);

DESC sc;

INSERT INTO sc(sno,cno,score)

VALUES

(1,1001,80),

(1,1002,59),

(2,1002,90),

(2,1003,100),

(3,1001,99),

(3,1003,40),

(4,1001,79),

(4,1002,61),

(4,1003,99),

(5,1003,40),

(6,1001,89),

(6,1003,77),

(7,1001,67),

(7,1003,82),

(8,1001,70),

(9,1003,80),

(10,1003,96);

SELECT * FROM student;

SELECT * FROM teacher;

SELECT * FROM course;

SELECT * FROM sc;

7.9.1 语法

8bd14dc42e3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

查询张三的家庭住址

SELECT A.name,B.address FROM

A JOIN B

ON A.id=B.id

WHERE A.name='zhangsan'

7.9.2 例子:

查询一下世界上人口数量小于100人的城市名和国家名

SELECT b.name ,a.name ,a.population

FROM city AS a

JOIN country AS b

ON b.code=a.countrycode

WHERE a.Population<100

查询城市shenyang,城市人口,所在国家名(name)及国土面积(SurfaceArea)

SELECT a.name,a.population,b.name ,b.SurfaceArea

FROM city AS a JOIN country AS b

ON a.countrycode=b.code

WHERE a.name='shenyang';

7.9.3 别名

列别名,表别名

SELECT

a.Name AS an ,

b.name AS bn ,

b.SurfaceArea AS bs,

a.Population AS bp

FROM city AS a JOIN country AS b

ON a.CountryCode=b.Code

WHERE a.name ='shenyang';

7.9.4 多表SQL练习题

统计zhang3,学习了几门课

SELECT st.sname , COUNT(sc.cno)

FROM student AS st

JOIN

sc

ON st.sno=sc.sno

WHERE st.sname='zhang3'

查询zhang3,学习的课程名称有哪些?

SELECT st.sname , GROUP_CONCAT(co.cname)

FROM student AS st

JOIN sc

ON st.sno=sc.sno

JOIN course AS co

ON sc.cno=co.cno

WHERE st.sname='zhang3'

查询oldguo老师教的学生名.

SELECT te.tname ,GROUP_CONCAT(st.sname)

FROM student AS st

JOIN sc

ON st.sno=sc.sno

JOIN course AS co

ON sc.cno=co.cno

JOIN teacher AS te

ON co.tno=te.tno

WHERE te.tname='oldguo';

查询oldguo所教课程的平均分数

SELECT te.tname,AVG(sc.score)

FROM teacher AS te

JOIN course AS co

ON te.tno=co.tno

JOIN sc

ON co.cno=sc.cno

WHERE te.tname='oldguo'

4.1 每位老师所教课程的平均分,并按平均分排序

SELECT te.tname,AVG(sc.score)

FROM teacher AS te

JOIN course AS co

ON te.tno=co.tno

JOIN sc

ON co.cno=sc.cno

GROUP BY te.tname

ORDER BY AVG(sc.score) DESC ;

查询oldguo所教的不及格的学生姓名

SELECT te.tname,st.sname,sc.score

FROM teacher AS te

JOIN course AS co

ON te.tno=co.tno

JOIN sc

ON co.cno=sc.cno

JOIN student AS st

ON sc.sno=st.sno

WHERE te.tname='oldguo' AND sc.score<60;

5.1 查询所有老师所教学生不及格的信息

SELECT te.tname,st.sname,sc.score

FROM teacher AS te

JOIN course AS co

ON te.tno=co.tno

JOIN sc

ON co.cno=sc.cno

JOIN student AS st

ON sc.sno=st.sno

WHERE sc.score<60;

7.9.5 综合练习

1\. 查询平均成绩大于60分的同学的学号和平均成绩;

2\. 查询所有同学的学号、姓名、选课数、总成绩;

3\. 查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

4\. 统计各位老师,所教课程的及格率

5\. 查询每门课程被选修的学生数

6\. 查询出只选修了一门课程的全部学生的学号和姓名

7\. 查询选修课程门数超过1门的学生信息

8\. 统计每门课程:优秀(85分以上),良好(70-85),一般(60-70),不及格(小于60)的学生列表

9\. 查询平均成绩大于85的所有学生的学号、姓名和平均成绩

8.information_schema.tables视图

DESC information_schema.TABLES

TABLE_SCHEMA ---->库名

TABLE_NAME ---->表名

ENGINE ---->引擎

TABLE_ROWS ---->表的行数

AVG_ROW_LENGTH ---->表中行的平均行(字节)

INDEX_LENGTH ---->索引的占用空间大小(字节)

查询整个数据库中所有库和所对应的表信息

SELECT table_schema,GROUP_CONCAT(table_name)

FROM information_schema.tables

GROUP BY table_schema;

统计所有库下的表个数

SELECT table_schema,COUNT(table_name)

FROM information_schema.TABLES

GROUP BY table_schema

查询所有innodb引擎的表及所在的库

SELECT table_schema,table_name,ENGINE FROM information_schema.`TABLES`

WHERE ENGINE='innodb';

统计world数据库下每张表的磁盘空间占用

SELECT table_name,CONCAT((TABLE_ROWS*AVG_ROW_LENGTH+INDEX_LENGTH)/1024," KB") AS size_KB

FROM information_schema.tables WHERE TABLE_SCHEMA='world';

统计所有数据库的总的磁盘空间占用

SELECT

TABLE_SCHEMA,

CONCAT(SUM(TABLE_ROWS*AVG_ROW_LENGTH+INDEX_LENGTH)/1024," KB") AS Total_KB

FROM information_schema.tables

GROUP BY table_schema;

mysql -uroot -p123 -e "SELECT TABLE_SCHEMA,CONCAT(SUM(TABLE_ROWS*AVG_ROW_LENGTH+INDEX_LENGTH)/1024,' KB') AS Total_KB FROM information_schema.tables GROUP BY table_schema;"

生成整个数据库下的所有表的单独备份语句

模板语句:

mysqldump -uroot -p123 world city >/tmp/world_city.sql

SELECT CONCAT("mysqldump -uroot -p123 ",table_schema," ",table_name," >/tmp/",table_schema,"_",table_name,".sql" )

FROM information_schema.tables

WHERE table_schema NOT IN('information_schema','performance_schema','sys')

INTO OUTFILE '/tmp/bak.sh' ;

CONCAT("mysqldump -uroot -p123 ",table_schema," ",table_name," >/tmp/",table_schema,"_",table_name,".sql" )

107张表,都需要执行以下2条语句

ALTER TABLE world.city DISCARD TABLESPACE;

ALTER TABLE world.city IMPORT TABLESPACE;

SELECT CONCAT("alter table ",table_schema,".",table_name," discard tablespace")

FROM information_schema.tables

WHERE table_schema='world'

INTO OUTFILE '/tmp/dis.sql';

9. show 命令

show databases; #查看所有数据库

show tables; #查看当前库的所有表

SHOW TABLES FROM #查看某个指定库下的表

show create database world #查看建库语句

show create table world.city #查看建表语句

show grants for root@'localhost' #查看用户的权限信息

show charset; #查看字符集

show collation #查看校对规则

show processlist; #查看数据库连接情况

show index from #表的索引情况

show status #数据库状态查看

SHOW STATUS LIKE '%lock%'; #模糊查询数据库某些状态

SHOW VARIABLES #查看所有配置信息

SHOW variables LIKE '%lock%'; #查看部分配置信息

show engines #查看支持的所有的存储引擎

show engine innodb status\G #查看InnoDB引擎相关的状态信息

show binary logs #列举所有的二进制日志

show master status #查看数据库的日志位置信息

show binlog evnets in #查看二进制日志事件

show slave status \G #查看从库状态

SHOW RELAYLOG EVENTS #查看从库relaylog事件信息

desc (show colums from city) #查看表的列定义信息

http://dev.mysql.com/doc/refman/5.7/en/show.html

这篇关于mysql创课程表tno是什么_MySQL-SQL基础应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/382580

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#