MySQL基础知识

2023-12-25 15:59:15 浏览数 (1)

 清屏: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";

删除记录DELETE

     语法: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,支持事务和索引。锁颗粒为行锁

0 人点赞