MySQL数据库基本操作
创建表 create table
查看表结构 desc table, show create table
表完整性约束
修改表 alter table
复制表 create table ...
删除表 drop table
一、创建数据库:
MySQL数据库基本操作
========================================================
1、初识SQL语言
SQL(Structured Query Language 即结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE
DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
DQL语句 数据库查询语言: 查询数据SELECT
2、系统数据库
information_schema:虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
performance_schema:主要存储数据库服务器的性能参数
mysql:授权库,主要存储系统用户的权限信息
sys:主要存储数据库服务器的性能参数
创建需要的业务主库...
3、创建业务数据库 DDL
语法
CREATE DATABASE 数据库名;
数据库命名规则:
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
查看数据库
SHOW DATABASES;
选择数据库
SELECT database(); 可查看当前所在数据库
USE 数据库名
删除数据库
DROP DATABASE 数据库名;
二、MySQL表操作
1)创建表(表的基本操作)
表school.student1
字段字段字段
id namesexage
1 tommale23记录
语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
)[存储引擎 字符集];
==在同一张表中,字段名是不能相同
==宽度和约束条件可选
==字段名和类型是必须的
mysql> CREATE DATABASE school; //创建数据库school
mysql> useschool;
mysql> create tablestudent1(-> id int,-> name varchar(50),-> sex enum('m','f'),-> age int
->);
Query OK,0 rows affected (0.03sec)
mysql> show tables; //查看表(当前所在库)+------------------+
| Tables_in_school |
+------------------+
| student1 |
+------------------+
1 row in set (0.00sec)
mysql> select * from student1; //查询表中所有字段的值
Emptyset (0.00sec)
mysql> select name,age from student1; //查询表中指定字段的值
Emptyset (0.00 sec)
2)向表中插入内容
语法:
insert into 表名(字段1,字段2...) values(字段值列表...);
顺序插入:
mysql> descstudent1;+-------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| sex | enum('m','f') | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+---------------+------+-----+---------+-------+
4 rows in set (0.32sec)
mysql> insert into student1 values
-> (1,'yanglt','m',28),-> (2,'chengdanjie','f',27)-> (3,'ylt','m',28);
Query OK,3 rows affected (0.01sec)
Records:3 Duplicates: 0 Warnings: 0mysql> select * fromstudent1;+------+------------+------+------+
| id | name | sex | age |
+------+------------+------+------+
| 1 | yanglt | m | 28 |
| 2 | chendanjie | f | 27 |
| 3 | ylt | m | 28 |
+------+------------+------+------+
3 rows in set (0.01 sec)
向指定字段插入
mysql> insert into student1(name,age) values
-> ('yangyang',15),-> ('chenchen',20);
Query OK,2 rows affected (0.42sec)
Records:2 Duplicates: 0 Warnings: 0mysql> select * fromstudent1;+------+------------+------+------+
| id | name | sex | age |
+------+------------+------+------+
| 1 | yanglt | m | 28 |
| 2 | chendanjie | f | 27 |
| 3 | ylt | m | 28 |
| NULL | yangyang | NULL | 15 |
| NULL | chenchen | NULL | 20 |
+------+------------+------+------+
5 rows in set (0.00sec)
mysql>
3)表操作实例:
表school.student2
字段名 数据类型
编号 idint姓名 namevarchar(50)
出生年份 born_yearyear生日 birthday date
上课时间 class_time time
注册时间 reg_timedatetimemysql> create tablestudent2(
idint,
namevarchar(50),
born_yearyear,
birthday date,
class_time time,
reg_timedatetime);
mysql> descstudent2;
mysql> insert into student2 values(1,'tom',now(),now(),now(),now());
mysql> insert into student2 values(2,'jack',1999,19991120,123000,20170415162545);
表school.student3
id id int姓名 namevarchar(50)
性别 sex enum('male','female')
爱好 hobbyset('music','book','game','disc')
mysql> create tablestudent3(
idint,
namevarchar(50),
sex enum('male','female'),
hobbyset('music','book','game','disc')
);
mysql> descstudent3;
mysql> show create tablestudent3\G
mysql> insert into student3 values (1,'yang','m','book,game');
mysql> insert into student3 values (2,'alice','f','film');
mysql> select * fromstudent3;+------+-------+------+------------+
| id | name | sex | hobby |
+------+-------+------+------------+
| 1 | yang | m | book,music |
| 2 | alice | f | file |
+------+-------+------+------------+
2 rows in set (0.31 sec)
4)查看表结构
DESCRIBE查看表结构
DESCRIBE 表名;
DESC 表名;
SHOW CREATE TABLE查看表详细结构
SHOW CREATE TABLE 表名;