все заявления; конец
ключевые слова mysql не чувствительны к регистру
Учебные идеи: просмотр sql в сравнении с визуальной историей
Необходимо помнить фиксированный синтаксис или ключевые слова
какой оператор выполняется
Просмотреть все базы данных
show databases;
переключиться на базу данных
use xxx;
Просмотр всех таблиц в базе данных
show tables;
Просмотр всей информации во всех таблицах базы данных
describe 表名
--简写
desc 表名
создать базу данных
create database xxx;
выйти из соединения
exit;
Примечания
--单行注释
/* */多行注释
ТРУД: ТРУД
DDL: язык определения базы данных
DML: язык запросов к базе данных
DQL: язык запросов данных
DCL: язык управления базой данных
Работа с базой данных: (понять)
Операционная база данных -> операционная таблица -> данные в операционной таблице
Работа с базой данных:
Создать базу данных: создать базу данных xxx (если она уже существует, ошибка)
create database [if not exists] xxx;//判断是否存在
Удалить базу данных:
drop database [if exists] xxx;//如果存在
Использование базы данных:
use xxx;
-- 如果表名或者字段名是一个特殊字符,就需要带``
Посмотреть базу данных
show database xxx;
Тип данных (столбца) базы данных:
целое число | ||
крошечный | небольшие данные | 1 байт |
малыйинт | меньшие данные | 2 байта |
инт | Стандартное целое число (обычно используется) | 4 байта |
медиуминт | данные среднего размера | 3 байта |
большойинт | большие данные | 8 байт |
десятичная дробь | ||
плавать | одинарная точность | 4 байта |
двойной | Двойная точность (чаще) | 8 байт |
десятичная дробь | Числа с плавающей запятой в строковой форме (для предотвращения потери точности, финансовых расчетов) | |
нить | ||
уголь | строка фиксированного размера 0-255 | |
варчар | Строка переменной длины 0-65535 (обычно используется) | |
крошечный текст | Микротекст 2^8-1 | |
текст | Текстовая строка 2^16-1 | |
Время и дата | ||
дата | ГГГГ-ММ-ДД | дата |
время | ЧЧ:мм:сс | Формат времени |
дата и время | ГГГГ-ММ-ДД ЧЧ:мм:сс | Наиболее используемое |
отметка времени | Временная метка 1970,1,1 миллисекунды до настоящего времени | Обычно используется |
год | год | |
null (не используйте null для операций) |
Свойства поля базы данных (выделение)
неподписанный | Беззнаковое целое, не может быть объявлено отрицательным |
заполнение нулями | 0-заполняется, недостающие цифры заполняются 0 интервал (3) 001 |
автоматическое приращение | Обычно понимается как самоувеличение, автоматически +1 по умолчанию на основе предыдущей записи |
Обычно используется для создания уникального первичного ключа (индекса), который должен быть целочисленного типа. | |
Начальное значение и размер шага автоинкремента первичного ключа можно настроить | |
не нулевой NULLненулевой | not null: если вы не присвоите ему значение, будет сообщено об ошибке NULL:如果不填写值,默认值就是null |
默认 | 设置默认的值 |
用sql语句创建表(重点):
在school数据库中创建一个学生表
create table if not exists `student`(
`id` int not null auto_increment comment'学号',
`name` varchar(30) not null default '匿名' comment'姓名',
`pwd` varchar(20) not null default '123456' comment'密码',
`sex` varchar(2) not null default'男' comment'性别',
`birthday` datetime default null comment'出生日期',
`address` varchar(100) default null comment'家庭住址',
`email` varchar(50) default null comment'邮箱',
primary key (`id`)
)engine=InnoDB default charset=utf8mb4
语法
create table [if not exists] `表名`(
`字段1` 数据类型 [not null] [default' '] [auto_increment] comment' ',
`字段1` 数据类型 [not null] [default' '] [auto_increment] comment' ',
`字段1` 数据类型 [not null] [default' '] [auto_increment] comment' ',
.....
`字段1` 数据类型 [not null] [default' '] [auto_increment] comment' ',
primary key(`主键字段名`)
)engin=innodb default charset=
注意:
使用英文括号,字段和字段名用``括起来,字符串用''括起来,所以的语句后面加英文逗号,最后一句不用加
primary key()设置主键,一般一个表只有一个唯一的主键。
charset设置数据库表的字符集编码
数据库引擎:(了解)
Innodb:默认使用
Myisam:早些年使用
myisam | innodb | |
事物支持 | 不支持 | 支持 |
数据行锁定 | 不支持(表锁) | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大(2倍) |
MYISAM:节约空间,速度较快
INNODB:安全性高,事物处理,多表多用户操
索引的数据库文件都存在在data目录下,本质是文件存储,一个文件夹对应一个数据库
INNODB:在数据库表中只有一个.frm文件,以及上级目录下的ibdata1文件
MYISAM对应文件:*.frm文件(表结构的定义文件)*.MYD文件(数据文件)*.MYI 索引文件
修改表:
修改表名
alter table 表名1 rename as 表名2
增加表的字段
alter table 表 add 字段名 列属性
修改表的字段(重命名,修改约束):
alter table 表名 modify 字段名 属性 (修改约束)
alter table 表名 change 字段名 字段名1(字段重名名)
删除表的字段
alter table 表名 drop 字段名
删除表
drop table [if exists] 表
所有的创建和删除操作尽量加上判断,以免报错
注意:所有字段名使用``括号
注释:--
sql关键字大小写不敏感,建议小写
所有符号全部用英文
数据管理
外键(了解)
方式1:在创建时候创建外键约束
方式2:创建成功后添加外键约束
??????
删除有外键关系的表中,必选要先删除引用别人的表(从表),再删除主表
以上的操作是物理外键,数据库级别的外键,不建议使用
最佳实践:
●数据库就是单纯的表,只用来存数据,只有行(数据)和列(字段)
●想要使用外键,用程序去实现
DML语言
数据库意义:数据存储和数据管理
DML语言:数据库操作语言
insert:
语法:
insert into 表名([字段名1,字段2])values('值1'),('值2'),('值3')
如果不写表的字段,就会一一匹配。
一般写插入语句,数据和字段一定要一一对应。
insert into `student` (name,sex)
values("张三",'男'),
("李四","男");
*由于主键自增可以省略主键
*字段和字段之间使用逗号隔开。
*字段是可以省略,但是字段和值必须一一对应。
*可以同时插入多条语句,values后面的值用逗号隔开。