mysql语法基础:
1 | 创建并使用数据库
- 了解什么是SQL
- 了解数据定义语句(DDL)和数据管理语句(DML)
- 掌握建库建表语句
- 掌握数据的增删改查语句
1-1、数据定义语言 DDL:
操作对象:表/数据库
1)作用:
- 在数据库中创建、修改、删除表/数据库
- 为表加入索引(主键,外键、索引)
2)SQL关键字:
- CREATE
- ALTER
- DROP
1-2、数据管理语言 DML
操作对象:数据
1)作用: 在数据库中对数据进行增删改操作
2)SQL关键字:
- INSERT
- SELECT
- UPDATE
- DELETE
1-3、数据库的创建和使用
创建数据库
CREATE DATABASE `mydatabase`;
切换数据库
-- 切换数据库
USE `mydatabase`;
查看已有的数据库名称
SHOW DATABASES;
2 | 创建及修改表
创建表
建表语句
CREATE TABLE `my_user`(
`id` INT NOT NULL,
`name` VARCHAR(200) NOT NULL
)
常见字段类型
int float decimal char varchar datetime
修改表语句
新增列
ALTER TABLE `my_user` ADD
删除列
ALTER TABLE `my_user` DROP
修改列
ALTER TABLE `my_user` CHANGE COLUMN
-- 将age列换成password
ALTER TABLE `my_user` CHANGE COLUMN `age` `password` VARCHAR(255);
-- ALTER TABLE `my_user` ADD `age` INT;
-- ALTER TABLE `my_user` ADD `password` VARCHAR(255);
-- 删除列password
-- ALTER TABLE `my_user` DROP `password`;
** 索引
索引作用: 提高MySQL的检索速度
索引的分类:
- 普通索引
- 唯一索引
- 主键索引
- 外键关联索引
创建索引语法:
CREATE INDEX index_name ON table_name(column_name)
-- 使用:
-- 创建索引
CREATE INDEX my_index_name ON `my_user`(`name`);
-- 添加主键、自动递增
CREATE TABLE `my_user_2`(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(200) UNIQUE NOT NULL,
PRIMARY KEY (`id`)
)
3 | 插入与查询语句
数据管理语言 (DML)
作用:在数据库中对数据进行增删改查操作
SQL关键字
- INSERT 新增(Create)
- SELECT 查询(Read)
- UPDATE 修改(Update)
- DELETE 删除(Delete)
插入语句
INSERT INTO table_references VALUE(S)...
-- 插入1条数据
-- INSERT INTO account_user VALUES(2, 'lisi', '123456', 24, '女', '1990-10-01');
-- 插入多条数据
INSERT INTO account_user VALUES(3, 'lisi3', '123456', 24, '女', '1990-10-01'),
(4, 'lisi4', '123456', 24, '女', '1990-10-01'),
(5, 'lisi5', '123456', 24, '女', '1990-10-01');
查询语句
SELECT
select_expr, ...
FROM table_references
[WHERE where_definition]
[GROUP BY {col_name | expr | position}]
[HAVING where_definition]
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
[LIMIT {[offset,] row_count}]
使用
-- 查询表中的所有的数据
SELECT username, `password` FROM account_user WHERE username='lisi4';
SELECT * FROM account_user;
4 | 修改和删除数据
4-1 修改/更新数据
修改语句
语法:
UPDATE table_references
SET col_name1 = expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
使用示例:
-- 修改语句:把所有的用户年龄修改为30岁
UPDATE `account_user` SET age=30;
-- 把所有的用户年龄修改为31岁,性别女性
UPDATE `account_user` SET age=31, `sex`='女';
-- 修改某一条数据
UPDATE `account_user` SET age=20, `sex`='男' WHERE `username`='lisi';
删除数据
删除语句
语法:
DELETE FROM tbl_name
[WHERE where_definition]
使用示例:
-- 删除lisi3
DELETE FROM `account_user` WHERE `username`='lisi3';
-- 删除所有的数据(谨慎!!危险操作!!!)
DELETE FROM `account_user`;
- 逻辑删除:标记性的删除
- 物理删除:从数据库里真实的删除。DELETE FROM
account_user
;
-- 逻辑删除
UPDATE `account_user` SET `is_valid`=0 WHERE `id`=4;