-- 单行注释
/*
多行注释
*/
-- 查看Mysql的版本号 ctrl+r 选中sql语句
SELECT version();
命令行登录mysql
注意:如果连接的是本地数据库,-h可以省略不写
mysql -h ip地址 -P 端口 -u 用户名 -p 数据库名称
简写:mysql -u root -p 回车
SQL(Structured Query Language)结构化查询语言
定义:用于程序员和DBMS进行交互的语言
分类:
DDL(数据定义语言)
用于创建和删除数据库对象等操作 CREATE DROP ALTER
注意:不支持事务回滚的
DML(数据操作语言)(重要)
包含DQL 用来操作数据库中所包含的数据INSERT DELETE UPDATE SELECT
TCL(事务控制语言)
对数据库中事务进行操作 COMMIT ROLLBACK SAVEPOINT
DCL(数据控制语言)
用来控制数据库组件的存取许可、存取权限等 GRANT REVOKE
-- 创建数据库 create database 数据库名 default character set 字符集 collate 排序规则
create database db1 default character set utf8mb4 collate utf8mb4_general_ci;
-- 删除数据库 drop database 数据库名
drop database db1;
-- 查看当下登录用户可以访问的数据库有哪些 show databases;
show databases;
-- 查看数据库的创建语句 show create database 数据库名字
show create database db1;
-- 选中要操作的数据库 use 数据库名
use db1;
mysql的数据类型
- 数值类型(整数小数)
tinyint(m)1个字节 -128-127之间 smallint(m) mediumint(m) int(m) bigint(m)
int(3) int(11) 没有区别的 只有联合zerofill的参数有意义,和区别
float(m,d) double(m,d) decimal(m,d)
涉及金额的存储禁止用float和double 要用decimal
- 日期类型
data time year datetime timestamp(常用)
- 字符串类型 不区分单双引号 '' ""都可以表示字符串
char(n) :定长字符串 类似java数组
varchar(n): 变长字符串 类似java集合
注意:n表示字节数 一个中文4-8个字节 1个字母1个字节
char(10) 不管你用不用,都在内存开辟一个长度为10的字节空间 效率高 占空间
varchar(10) 你用就占字节,不用就不占字节,10表示最大可占字节数 效率低 省空间
分别什么时候使用???
存中国人名字(4个字)的时候用 char(20)
预判到最大值的时候,而且不会太长就用char,因为速度快
存博客名字 char
存博客备注 varchar
text blob 可以存大型的文本数据
-
枚举类型 后面讲
-
集合类型 后面讲
常用的数据类型:
tinyint int
double decimal
date:yyyy-mm-dd 2024-07-22
time: HH:MM:ss
timestamp yyyy-mm-dd HH:MM:ss
char varchar text
DDL(数据定义语言)
了解 知道就可以
用于创建和删除数据库对象等操作
数据库对象:数据库、表、视图、存过、索引等
关键字:CREATE DROP ALTER
注意:不支持事务回滚的,就是操作后,不能返回。
-- 创建表:create table 表名(字段名 数据类型 comment 注释,字段名 数据类型.....)
create table student_info(
name char(10) comment "姓名",
age int comment "年龄"
) comment "学生表";
-- 查看当前用户下面所使用的数据库里面有多少张表 show tables;
show tables;
-- 查看表的建表语句 show create table 表名
show create table student_info;
-- 查看表结构 desc 表名
desc student_info;
-- 删除表 drop table 表名 & drop table if exists 表名
drop table if exists student_info;
-- 所以一般建表的时候,会先删除,再创建
-- 在数据库里面所有数据类型的默认值是都是null
drop table if exists student_info;
CREATE TABLE `student_info` (
`name` char(10) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生表';