基础SQL语法及使用案例

通用SQL语法

  1. SQL语句可以单行或多行书写,以分号结尾。
  2. SQL语句可以使用空格/缩进来增强语句的可读性。
  3. MySOL数据库的SQL语句不区分大小写,关键字建议使用大写。
  4. 注释:
    单行注释:--注释内容 或 #注释内容(MySQL特有)
    多行注释:/*注释内容*/

SQL分类

分类 全称 说明
DDL Data Definition Language 数据定义语言,用来定义数据库对象(数据库,表,字段)
DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改
DQL Data Query Language 数据查询语言,用来查询数据库中表的记录
DCL Data Control Language 数据控制语言,用来创建数据库用户、控制数据库的访问权限

DDL-数据库操作

查询

查询所有数据库

show database;

查询当前数据库

select database();

创建

数据库创建语法。

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

创建数据库,以默认方式。

create database my_db;


创建数据库,如果存在就不创建。

create database if not exists my_db;


创建数据库指定数据库默认字符集。

create database my_test default charset utf8mb4;

删除

数据库删除语法。

DROP DATABASE [IF EXISTS] 数据库名;

删除数据库。

drop database my_test;


删除数据库,如果存在就删除。

drop database if exists my_test;

切换

数据库使用语法。

USE 数据库名;

使用数据库。

use my_db;


此时可以通过上述查看选择的数据库命令来查看当前选择的数据库。

select database();

DDL-表操作

查询

查询当前数据库所有表。

show tables;


这里可以在后面的创建表命令后操作。
查询表结构。

DESC 表名;
desc tb_user;

查询指定表的建表语句

SHOW CREATE TABLE 表名;
show create table tb_user;

创建表

基本语法。

CREATE TABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释],
字段3 字段3类型[COMMENT 字段3注释],
...
字段n 字段n类型[COMMENT 字段n注释]
) [COMMENT 表注释]

注意:最后一个字段没有逗号

创建一个用户表。

create table tb_user(
       id int comment '编号',
       name varchar(50) comment '姓名',
       age int comment '年龄',
       gender varchar(1) comment '性别'
       ) comment '用户表';

数据类型
数值类型
类型 大小 有符号(SIGNED)范围 无符号(UNSIGNED)范围 描述
TINYINT 1 byte (-128,127) (0,255) 小整数值
SMALLINT 2 bytes (-32768,32767) (0,65535) 大整数值
MEDIUMINT 3 bytes (-8388608,8388607) (0,16777215) 大整数值
INT或INTEGER 4 bytes (-2147483648,2147483647) (0,4294967295) 大整数值
BIGINT 8 bytes (-263,263-1) (0,2^64-1) 极大整数值
FLOAT 4 bytes (-3.402823466 E+38,3.402823466351 E+38) 0 和 (1.175494351 E-38,3.402823466 E+38) 单精度浮点数值
DOUBLE 8 bytes (-1.7976931348623157 E+308,1.7976931348623157 E+308) 0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308) 双精度浮点数值
DECIMAL 依赖于M(精度)和D(标度)的值 依赖于M(精度)和D(标度)的值 小数值(精确定点数)
字符串类型
类型 大小 描述
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过255个字符的二进制数据
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据
日期时间类型
类型 大小 范围 格式 描述
DATE 3 1000-01-01 至 9999-12-31 YYYY-MM-DD 日期值
TIME 3 -838:59:59 至 838:59:59 HH:MM:SS 时间值或持续时间
YEAR 1 1901 至 2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00 至 9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:01 至 2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳

案例:设计一张员工信息表,要求如下:
1.编号(纯数字)
2.员工工号(字符串类型,长度不超过10位)
3.员工姓名(字符串类型,长度不超过10位)
4.性别(男/女,存储一个汉字)
5.年龄(正常人年龄,不可能存储负数)
6.身份证号(二代身份证号均为18位,身份证中有X这样的字符)
7.入职时间(取值年月日即可)

创建表SQL

create table emp(
    id int comment '编号',
    work_no varchar(10) comment '工号',
    name varchar(10) comment '姓名',
    gender char(1) comment '性别',
    age tinyint unsigned comment '年龄',
    id_card char(18) comment '身份证号',
    entry_date date comment '入职时间'
)comment '员工表';


查看表结构

desc emp;

添加字段

添加字段语法格式。

ALTER TABLE 表名 ADD 字段名类型(长度) [COMMENT 注释] [约束];

案例:为emp表增加一个新的字段”呢称”为nickname,类型为varchar(20)

alter table emp add nickname varchar(20) comment '昵称';


查看表。

desc emp;

修改字段

修改数据类型

ALTER TABLE 表名 MODIFY 字段名新数据类型(长度);

修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

案例:将emp表的nickname字段修改为username,类型为varchar(30)

alter table emp change nickname username varchar(30) comment '用户名';


查看表。

desc emp;

删除字段

删除字段

ALTER TABLE 表名 DROP 字段名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值