一、什么是SQL语句?
(1)SQL(Struct Query Language,结构化查询语言) 就是对数据库进行操作的一种语言。
(2)数据库分类:
DDL(Data Definition Language,数据定义语言):
CREATE TABLE、ALTER TABLE、DROP TABLE、CREATE/DROP INDEX
DML(Data Manipulation Language,数据操作语言):
INSERT、DELETE、UPDATE ,主要是对表数据进行操作,如对表数据进行增、删、改
DQL(Data Query Language数据查询语言): SELECT
SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>
DCL(Data Control Language,数据控制语言):
GRANT、ROLLBACK、COMMIT(有时也叫TCL:事务控制语言)
二、数据库SQL操作
快捷键操作:#(ctrl + /) 行注释 例:# 这里写注释
/**/(ctrl + shift + /) 块注释 例:/* 这里写注释*/
ctrl + enter 运行
注:被注释的行不会被执行
代码部分
create datebase date; # 创建一个名字为date的数据库,库存在则报错
create database if not exists date; # 如果数据库date不存在,那么就创建一个数据库
use date; # 选择数据库date
drop database date; # 删除数据库date
select database(); # 查看当前选择的数据库
show tables; # 查看当前数据库包含的数据表
show create database date; # 查看建库语句
三、数据库表SQL操作
# 创建数据表
create table student(
# 格式:列名字 类型(长度限制) 其他限制条件
# 如果超出长度限制则报错
sid int(12), # 输入sid,id类型为整数,且长度不超过12
name varchar(5), # 输入名字,名字类型为字符串,且长度不超过5
age int(3), # 输入年龄,类型为整数,且长度不超过3
gender enum('男', '女'), # 输入性别,只能在男和女之间选择
introduce text # 简介,类型为text
);
# 添加表格信息
insert into student values (1, '名字', 20, '男', '简介')
/*
student也可以指定使用哪个数据库的student,格式为:数据库名字.student
同时student也可以加上引号,意义为不是关键字,是表明,如:'student'
表格间建立要一一对应,比如第一个要求整数,输入字符串就会报错
*/
# 其他语句
desc student; # 查看数据表student的表结构
alter table student add age; # 在student数据表中添加(add)一列,列的名字叫age
alter table student change sid id int(12); # 将数据表student中叫sid的列改名为id,如果没有这个列名,则报错
alter table student drop age; # 将数据表student中叫age的一列删除
alert table student to stu; # 将数据表student改名字为stu
show create table student; # 查看数据表student的建表语句
drop table student; # 删除数据表student
其他补充:
如果需要限制条件,举例:sid int(12) primary key auto_increment # 其中primary key auto_increment 为限制条件,含义为主键自增
限制条件其他介绍如下:
约束条件 | 说明 |
primary key
|
主键(唯一、不能为空)
|
not null
| 不为空 |
null | 允许为空 |
auto_increment | 自增长(一般和主键结合使用) |
unique | 唯一,不能重复 |
binary | 设置大小写敏感 |
foreign key |
外键,指向另一个表的主键
|
数据库数据类型:
数值类型 | 说明 |
tinyint/int/bigint
| 小整数(-2^7 ~2^7 ) / 整数( -2^31~2^31-1) / 大整数(-2^63~2^63-1) |
decimal/float/double
|
准确的小数/单精度浮点数(-2128 ~2128)/双精度浮点数(-21024 ~+21024)
|
char/varchar
| 固定长度的字符串/可变长度的字符串 |
text/mdeiumtext/longtext | 长字符串(64kb) / 超长字符串(16mb) / 超超长字符串(4G) |
date/time/datetime/timestamp/year | 年月日/小时分钟秒/年月日小时分钟秒/时间戳/年 |
enum | 枚举(即单选,只能出括号内选一个,选择以逗号隔开) |
set | 集合 |