结构化查询语句分类
名称 | 解释 | 命令 |
---|---|---|
DDL(数据定义语言) | 定义和管理数据对象,如数据库、数据表等 | CERATE、DROP、ALTER |
DML(数据操作语言) | 用于操作数据库对象中所包含的数据 | INSERT、UPDATE、DELETE |
DQL(数据查询语言) | 用于查询数据库数据 | SELECT |
DQL(数据控制语言) | 用于管理数据库,包括权限和数据更改 | GRANT、commit、rollback |
数据库操作
命令行操作数据库
创建数据库 : create database [if not exists] 数据库名;
删除数据库 : drop database [if exists] 数据库名;
查看数据库 : show databases;
使用数据库 : use 数据库名;
创建数据表
语法如下
create table [if not exists] `表名`(
'字段名1' 列类型 [属性][索引][注释],
'字段名2' 列类型 [属性][索引][注释],
#...
'字段名n' 列类型 [属性][索引][注释]
)[表类型][表字符集][注释];
注意 :字段名的``是反引号,用于区别MySQL关键字与普通字符儿引入
这里进行一个实际操作,要求如下
-- 目标 : 创建一个school数据库
-- 创建teacher表(列,字段)
-- 学号int 登录密码varchar(10) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email
-- 创建表之前 , 一定要先选择数据库
使用Navicat执行的sql语句如下
use school;
CREATE TABLE IF NOT EXISTS `teacher` (
`id` INT ( 4 ) NOT NULL PRIMARY KEY auto_increment COMMENT '编号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(10) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(20) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(20) DEFAULT NULL COMMENT '电子邮箱',
) ENGINE=INNODB DEFAULT CHARACTER SET=utf8
这样就建立了一个新的表,如下
语句最后ENGINE=INNODB DEFAULT CHARACTER SET=utf8
,是设置了引擎和文本格式,这个可以自行百度了解
数据值和列类型
1、数值类型
2、字符串类型
3、日期和时间类型
数据表存储位置
MySQL数据表以文件方式存放在磁盘中
包括表文件 , 数据文件 , 以及数据库的选项文件
位置 : Mysql安装目录\data\下存放数据表 . 目录名对应数据库名 , 该目录下文件名对应数据表 .
查看表操作
-- 查看数据库的定义
SHOW CREATE DATABASE school;
-- 查看数据表的定义
SHOW CREATE TABLE student;
-- 显示表结构
DESC student;
修改表操作
ALTER TABLE teacger1 RENAME AS teacher1 -- 修改表名
ALTER TABLE teacher1 ADD age INT(2) -- 添加字段
ALTER TABLE teacher1 MODIFY age VARCHAR(2) -- 修改字段约束
ALTER TABLE teacher1 CHANGE age age1 INT(1) -- 字段修改(重命名和改约束)
ALTER TABLE teacher1 DROP age1 -- 删除字段
DROP table IF EXISTS teacher1 -- 删除表
注意:为避免报错,最好使用IF EXISTS进行一步判断