启航做网站怎么样,广州做手机网站信息,企业vi设计与网站开发,网站名称备案1. 基础知识
存储数据是处理数据的第一步#xff0c;只有正确地把数据存储起来#xff0c;才能进行有效的处理和分析。
在 MySQL 中#xff0c;一个完整的数据存储过程总共有 4 步#xff0c;分别是创建数据库、确认字段、创建数据表、插入数据。
从系统架构的层次上看…1. 基础知识
存储数据是处理数据的第一步只有正确地把数据存储起来才能进行有效的处理和分析。
在 MySQL 中一个完整的数据存储过程总共有 4 步分别是创建数据库、确认字段、创建数据表、插入数据。
从系统架构的层次上看MySQL 数据库系统从大到小依次是数据库服务器、数据库、数据表、数据表的行与列。
标识符命名规则 数据库名、表名不得超过30个字符变量名限制为29个必须只能包含 A–Z, a–z, 0–9, _共63个字符数据库名、表名、字段名等对象名中间不要包含空格同一个MySQL软件中数据库不能同名同一个库中表不能重名同一个表中字段不能重名必须保证你的字段没有和保留字、数据库系统或常用方法冲突如果坚持使用请在SQL语句中使用着重号引起来保持字段名和类型的一致性在命名字段并为其指定数据类型的时候一定要保证一致性假如数据类型在一个表里是整数那在另一个表里不能变成字符型 MySQL中的数据类型
2. 创建和管理数据库
2.1. 创建数据库
方式1创建数据库
CREATE DATABASE 数据库名;方式2创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;方式3判断数据库是否已经存在不存在则创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;DATABASE 不能改名一些可视化工具可以改名它是建新库把所有表复制到新库再删旧库完成的。
2.2. 使用数据库
查看当前所有的数据库
SHOW DATABASES;查看当前正在使用的数据库
SELECT DATABASE();查看指定库下所有的表
SHOW TABLES FROM 数据库名;查看数据库的创建信息
SHOW CREATE DATABASE 数据库名;
或者
SHOW CREATE DATABASE 数据库名\G
使用/切换数据库USE 数据库名; 要操作表格和数据之前必须先说明是对哪个数据库进行操作否则就要对所有对象加上“数据库名.”。
2.3. 修改数据库
更改数据库字符集
ALTER DATABASE 数据库名 CHARACTER SET 字符集;2.4. 删除数据库
方式1删除指定的数据库
DROP DATABASE 数据库名;方式2删除指定的数据库
DROP DATABASE IF EXISTS 数据库名;3. 创建表
3.1. 创建表方式一
登录的账号需要具备CREATE TABLE权限和存储空间的权限。
语法格式
CREATE TABLE [IF NOT EXISTS] 表名(
字段1, 数据类型 [约束条件] [默认值],
字段2, 数据类型 [约束条件] [默认值],
字段3, 数据类型 [约束条件] [默认值],
……
[表约束条件]
);加上IF NOT EXISTS关键字则表示如果当前数据库中不存在要创建的数据表则创建数据表如果当前数据库中已经存在要创建的数据表则忽略建表语句不再创建数据表。
必须指定表名、列名或字段名、数据类型及长度。
示例 创建emp表-- 创建表
CREATE TABLE emp (
emp_id INT,
name VARCHAR(50),
position VARCHAR(50),
salary DOUBLE,
hire_data DATE
);-- 显示表结构DESC是DESCRIBE的缩写
DESC emp;示例 创建dept表CREATE TABLE dept(
-- int类型自增
deptno INT(2) AUTO_INCREMENT,
dname VARCHAR(14),
loc VARCHAR(13),
-- 主键
PRIMARY KEY (deptno)
);
-- 查看表结构
DESCRIBE dept;3.2. 创建表方式二
使用 AS subquery 选项将创建表和插入数据结合起来。
CREATE TABLE talbe[(column,column...)]
AS subquery;指定的列和子查询中的列要一一对应‘ 通过列名和默认值定义列 示例创建emp1表并把emplyees表的数据插入到emp1中
CREATE TABLE emp1 AS SELECT * FROM employees;示例创建emp2表但不插入数据使用条件where 12的值是false故只按employees表结构创建emp2表但不插入数据
CREATE TABLE emp2 AS SELECT * FROM employees WHERE 12;示例按指定字段创建dept80表并把employees表中department_id为80的数据插入表中
CREATE TABLE dept80
AS
SELECT employee_id, last_name, salary*12 ANNSAL, hire_date
FROM employees
WHERE department_id 80;3.3. 查看数据表结构
MySQL支持使用DESCRIBE/DESC 语句查看数据表结构也支持使用SHOW CREATE TABLE 语句查看数据表结构。
语法格式如下
SHOW CREATE TABLE 表名\G使用SHOW CREATE TABLE语句不仅可以查看表创建时的详细语句还可以查看存储引擎和字符编码。
4. 修改表
修改表指的是修改数据库中已经存在的数据表的结构。
使用 ALTER TABLE 语句可以实现
向已有的表中添加列 修改现有表中的列 删除现有表中的列 重命名现有表中的列
4.1. 增加一个列
ALTER TABLE 表名 ADD 【COLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】; 示例向表dept80增加一列job_id
ALTER TABLE dept80 ADD job_id varchar(15);4.2. 修改一个列
可以修改列的数据类型长度、默认值和位置
ALTER TABLE 表名 MODIFY 【COLUMN】 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名2】;示例修改dept80表的last_name表字符串长度为30ALTER TABLE dept80 MODIFY last_name VARCHAR(30);示例修改dept80表的salary字段为double类型长度为9小数点后2位默认值为1000ALTER TABLE dept80
MODIFY salary double(9,2) default 1000;4.3. 重命名一个列
ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;示例修改dept80表中department_name为dept_nameALTER TABLE dept80
CHANGE department_name dept_name varchar(15);4.4. 删除一个列
ALTER TABLE 表名 DROP 【COLUMN】字段名示例删除dept80的job_id列ALTER TABLE dept80 DROP COLUMN job_id;5. 重命名表
方式一使用RENAME
RENAME TABLE emp TO myemp;方式二
ALTER table dept RENAME [TO] detail_dept; -- [TO]可以省略必须是对象的拥有者才可以重命名表。
6. 删除表
在MySQL中当一张数据表没有与其他任何数据表形成关联关系时可以将当前数据表直接删除。 DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];IF EXISTS 的含义为如果当前数据库中存在相应的数据表则删除数据表如果当前数据库中不存在相应的数据表则忽略删除语句不再执行删除数据表的操作。
示例删除dept80表
DROP TABLE dept80;DROP TABLE 语句不能回滚
7. 清空表
TRUNCATE TABLE语句删除表中所有的数据释放表的存储空间。
示例
TRUNCATE TABLE detail_dept;TRUNCATE语句不能回滚而使用 DELETE 语句删除数据可以回滚。
TRUNCATE TABLE 比 DELETE 速度快且使用的系统和事务日志资源少但 TRUNCATE 无事务且不触发 TRIGGER有可能造成事故故不建议在开发代码中使用此语句。
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同。