Mysql学习笔记

jiang 发表于2019-08-10 19:21:12 最后修改于2025-01-22 22:57:59 1657

数据库

登录 mysql -uroot -proot -P3306 -h127.0.0.1

退出 quit; exit; \q;

更改提示符 登录前 --prompt \h>

更改提示符 登录后 prompt mysql>

提示符参数 \D 完整日期 \d 当前数据库 \h当前主机 \u当前用户

显示服务器版本 mysql -V select version();

显示警告 SHOW WARNINGS;

显示当前日期 SELECT NOW();

显示当前用户 SELECT USER();

显示当前数据库 SELECT DATABASE();

创建数据库 CREATE DATABASES [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] utf8;

显示数据库 SHOW DATABASES;

显示数据库编码 SHOW CREATE DATABASE db_name;

删除数据库 DROP DATABASE [IF EXISTS] db_name;

修改数据库 ALTER DATABASE [db_name] [DEFAULT] CHARACTER SET [=] charset_name;

数据类型

  • 整型
  • TINYINT -128-127 0-255
  • SMALLINT -32768-32767 0-65535
  • DEMIUMINT -8388608-8388607 0-16777215
  • INT
  • BIGINT
  • 浮点型
  • FLOAT(M,D) M总位数 D小数点后位数
  • DOUBLE(M,D)
  • 日期型
  • YEAR -----------YYYY年份值1901/2155
  • TIME------------HH:MM:SS时间值或持续时间'-838:59:59'/- '838:59:59'
  • DATE------------YYYY-MM-DD日期值1000-01-01/9999-12-31
  • DATETIME-----YYYY-MM-DD HH:MM:SS混合日期和时间值1000-01-01 - 00:00:00/9999-12-31 23:59:59
  • TIMESTAMP---YYYYMMDD HHMMSS混合日期和时间值,时间戳-1970-01-01 00:00:00/2038
  • 字符型
  • CHAR(M)-------------------定长字符串 少的补空格
  • VARCHAR(M)--------------变长字符串
  • TINYTEXT------------------短文本字符串0-255字节
  • TEXT------------------------长文本数据0-65 535字节
  • MEDIUMTEXT-------------中等长度文本数据0-16 777 215字节
  • LONGTEXT----------------极大文本数据0-4 294 967 295字节
  • TINYBLOB------------------二进制形式的短文本字符串0-255字节
  • BLOB------------------------二进制形式的长文本数据0-65 53节
  • MEDIUMBLOB-------------二进制形式的中等长度文本数据0-16777215字节
  • LONGBLOB----------------二进制形式的极大文本数据0-4 294967295字节
  • ENUM('VAL1','VAL2',...)
  • SET('VAL1','VAL2',....)
  • 布尔型

    数据表

    打开数据库 USE db_name;

显示数据表 show tables [from db_name]; 省略查看当前数据库 from不改变数据库

创建数据表 CREATE TABLE [IF NOT EXISTS] table_name(cloumn_name data_type,.....);

查看表结构 SHOW COLUMNS FROM table_name; 或者desc table_name; 或者详细的SHOW CREATE TABLE table_name;

插入记录 INSERT [INTO] table_name [(column_name,.....)] VALUES(val,.....)[,(val,val2.....)]; 省略字段则每个字段都要赋值

插入记录 INSERT [INTO] table_name SET column_name = {expr|DEFAULT},......可使用子查询 只能插入一条

插入记录 INSERT [INTO] table_name [(column_name,....)] SELECT.....将查询结果写入数据表

单表更新记录UPDATE [LOW_PRIORITY] [IGNORE] table_name SET col_name1={expr1|DEFAULT},[col_name2=...] [WHERE where_desc]

单表删除记录DELETE FROM tab_name [WHERE where_desc] 省略条件则删除所有的记录

别名查找SELECT id AS myid,name AS myname FROM table_name;

查找记录SELECT * FROM table_name;

分组 GROUP BY column [ASC|DESC] 默认ASC升序

返回数量 LIMIT A,B 从A开始的B条记录 默认A=0 mysql为从0开始和数组下标一样

子查询ANY SOME ALL

添加单列ALTER TABLE table_name ADD [COLUMN] column_name col_definition [FIRST | AFTER clo_name];

添加多列ALTER TABLE table_name ADD [COLUMN] (column_name col_definition,........);

删除单列ALTER TABLE table_name DROP [COLUMN] col_name;

删除多列ALTER TABLE table_name DROP [COLUMN] col_name1,DROP [COLUMN] col_name2;

删除并添加ALTER TABLE table_name DROP [COLUMN] col_name1,ADD[COLUMN] col_name2 col_definition;

添加主键约束ALTER TABLE table_name ADD PRIMARY KEY(col_name);

添加唯一约束ALTER TABLE table_name ADD UNIQUE KEY(col_name);

更改默认约束ALTER TABLE table_name ALTER [COLUMN] col_name {SET DEFAULT zhi |DROP DEFAULT}

删除主键约束ALTER TABLE table_name DROP PRIMARY KEY

删除唯一约束ALTER TABLE table_name DROP {INDEX|KEY} index_name

修改列的定义ALTER TABLE tab_name MODIFY [COLUMN] col_name col_desc [FIRST | AFTER col_name]

修改列的定义名称ALTER TABLE tab_name CHANGE [COLUMN] oldcol_name newcol_name col_desc [FIRST | AFTER col_name]

数据表改名字 ALTER TABLE oldtal_name RENAME [TO|AS] newtal_name;

多张数据表改名字RENAME TABLE oldtal_name1 TO newtal_name1,oldtal_name2 TO newtal_name2;

数据结构定义 NULL 可为空

NOT NULL 不可为空

AUTO_INCREMENT 自动编号 必须与主键组合使用 默认起始值为1增量为1

主键PRIMARY KEY 一张数据表只能有一个主键,主键保证记录的唯一性,主键自动为NOT NULL,不必须与AUTO_INCREMENT一起

唯一约束 UNIQUE KEY 保证记录的唯一性,一张表可有多个 可为空

默认约束 DEFAULT 未赋值时自动赋值默认值,sex ENUM('1', '2', '3') DEFAULT '3'

约束

约束保证数据的完整性和一致性

约束分为表级约束和列级约束

约束类型

  • 1---NOT NULL非空约束
  • 2---PRIMARY KEY主键约束
  • 3---UNIQUE KEY唯一约束
  • 4---DEFAULT默认约束
  • 5---FOREIGN KEY外键约束

    外键约束

    保持数据一致性完整性,实现一对一 一对多

父表和子表(具有外键约束列的表)必须使用相同的储存引擎

(innoDB) 禁止使用临时表

外键列和参照列必须具有相似的数据类型

外键列和参照列必须创建索引,如果外键列不存在索引,mysql自动创建索引

修改id从1自增

ALTER TABLE user AUTO_INCREMENT=1;


小提示 now
头像
这里还没有评论,快评论吧。
头像

jiang

积土而为山,积水而为海。

Copyright © 2017-2020 嘉丽谷 版权所有