您的当前位置:首页正文

MySQL中的基础知识

2020-11-09 来源:易榕旅网

清屏:cls

MySQL基础

启动MySQL net start mysql

关闭MySQL net stop mysql

登录 mysql -uroot -p

退出 mysql>exit;

mysql>quit;

mysql>\p;

显示当前服务器版本 SELECT VERSION();

显示当前时间 SELECT NOW();

显示当前用户 SELECT USER();

MySQL默认的端口号是:3306

MySQL超级用户是:root

创建数据库:CREATE DATABASE

修改数据库:ALTER DATABASE

删除数据库:DROP DATABASE

数据类型

整型:TINYINT SMALLINT MEDIUMINT INT BIGINT

浮点型: FLOAT[(M,D)] DOUBLE[(M,D)] M为数字总位数,D为小数点后面的位数

字符型:VERCHAR(M)

数据表

查看有什么数据库:SHOW DATABASES;

打开数据库:USE 数据库名称

查看当前数据库:SELECT DATABASES;

创建数据表:CREATE TABLE[IF NOT EXISTS]table_name(

ageTINYINT UNSGINED(无符号位),

......

)

查看数据表列表:SHOW TABLES[FORM db_name];使用form可以查看别的数据库中的表

查看数据表结构:SHOW COLUMNS FORM tbl_name;

插入记录;INSERT [INTO] tbl_name[(coi_name,...)] VALUES(VAL,...);

查找记录:SELECT expr,...FORM tbl_name(WHERE .....);

空值与非空

CREATE TABLE[IF NOT EXISTS]table_name(

age1 TINYINT UNSGINED(无符号位) NOT NULL,

age2 TINYINT UNSGINED(无符号位) NULL,//默认是可以为空

......

)

自动编号AUTO_INCREMENT

1自动编号,且必须与主键组合使用

2默认情况下,起始值为1,增量为1

主键PRIMARY KEY

1每张表只能有一个主键

主键保证记录的唯一性

主键自动为NOT NULL

CREATE TABLE[IF NOT EXISTS]table_name(

age1 TINYINT UNSGINED(无符号位) PRIMARY KEY,

......

)

唯一约束UNIQUE KEY

默认约束:DEFAULT

更新记录UPDATE

语法:UPDATE tb_name SET age=age+10 WHERE name="chaihuo";

删除记录FELETE

语法:DELETE FORM tb_name WHERE name="chaihuo";

查询结果分组GROUP BY

语法:SELECT sex FORM users BY sex;

HCAING分组条件

语法:SELECT sex,age FORM users BY sex HAVING age>35;

主要:此时HAVING后面只有两种情况1)聚合函数2)在select后面

对查询结果进行排序ORDER BY

语法:SELECT * FORM users ORDER BY id DESC;

运算符和函数

字符运算符

CONCAT()字符连接

CONCAT_WS()使用指定的分隔符进行字符连接

FORMAT()数字格式化

LOWER()UPPER()转换成小/大写字母

LEFT() RIGHT()获取左/右侧字符

LENGTH()获取字符串长度

SUBSTRING()字符串截取

[NOT] LIKE 模式匹配

REPLACE()字符串替换

数值运算符与函数

CEIL() 进一取整

DIV 整数除法

FLOOR()舍一取整

MOD 取余数

POWER() 幂运算

ROUND()四舍五入

比较运算符与函数

[NOT] BETWEEN...AND... [NOT]IN() IS[NOT]NULL

信息函数

CONNECTION_ID() 连接id

DATEBASE()当前数据库

LAST_INSERT_ID()最后插入记录的Id号

USER()当前用户

VERSON()版本信息

聚合函数

AVG()平均值

COUNT()计数

MAX() MIN() SUM()

加密函数

MD5()信息摘要算法

PASSWORD()密码算法

子查询和连接

将查询结果写入数据表

INSERT[INTO] tbl_name[(col_name,...)] SELECT...

例子:INSERT tdb_goods(cate_name) SELECT good_cake FORM table GROUP BY good_cake;

多表更新

UPDATE table1 INNER JOIN table2 ON table1_name=table2_name SET table1_id=table2_di;

CREATE...SELECT

创建数据表同时将查询结果写入到数据表

CREATE TABLE table_name [(create_definine)] select_statement

例:CREATE TABLE table1(

id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(20) NOT NULL)

SELECT SELECT good_cake FORM table GROUP BY good_cake;

)

存储引擎

通过修改MySQL配置文件实现

1)-ddfault-storage-engine=engine

2)通过创建数据表命令实现

CREATE TABLE[IF NOT EXISTS]table_name(

age1 TINYINT UNSGINED(无符号位) NOT NULL,

age2 TINYINT UNSGINED(无符号位) NULL,//默认是可以为空

......

)ENGINE=engine;

通过修改数据表命令实现

-ALTER TABLE table_name ENGINE[=]engine_name;

存储引擎

MyISAM:存储现在可达256TB,支持索引。表级锁定,数据压缩

InnoDB:存储限制为64TB,支持事务和索引。锁颗粒为行锁

显示全文