MySQL操作庫 操作表(create)
阿新 • • 發佈:2020-10-25
mysql> help create database;
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ...
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
#1.建庫
mysql> create database db01;
Query OK, 1 row affected (0.00 sec)
#2.建庫2
mysql> create schema db02;
Query OK, 1 row affected (0.00 sec)
#3.建立已存在的庫不報錯
mysql> create database db01;
ERROR 1007 (HY000): Can't create database 'db01'; database exists
mysql> create database IF NOT EXISTS db01;
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> show create database db01;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| db01 | CREATE DATABASE `db01` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
#1.指定字符集建庫
mysql> create database db03 charset utf8;
Query OK, 1 row affected (0.00 sec)
#2.指定字符集和校驗規則建庫
mysql> create database db04 charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database db06 charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
#只需要修改字符集和校驗規則
mysql> alter database db05 character set utf8mb4 collate utf8mb4_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> show create database db05;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| db05 | CREATE DATABASE `db05` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> drop database db05;
Query OK, 0 rows affected (0.00 sec)
mysql> help create table;
Syntax:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
[partition_options]
[IGNORE | REPLACE]
[AS] query_expression
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }
#1.進入庫
mysql> use test;
Database changed
#2.檢視所在庫
mysql> select database();
+------------+
| database() |
+------------+
| test |
+------------+
1 row in set (0.00 sec)
#3.建表
mysql> create table tb1(id int);
Query OK, 0 rows affected (0.01 sec)
int 整數 -2^31 --- 2^31-1 (-2147483648 - 2147483647)
tinyint 最小整數 -128 --- 127 #一般用在定義年齡
varchar 字元型別(變長) #身份證或者名字
char 字元型別(定長)
enum 列舉型別 #性別
datetime 時間型別
#1.建表
mysql> create table tb1(id int);
Query OK, 0 rows affected (0.01 sec)
#2.指定字符集建表
mysql> create table tb2(id int) charset utf8;
Query OK, 0 rows affected (0.01 sec)
#3.檢視建表語句
mysql> show create table tb2;
+-------+---------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------+
| tb2 | CREATE TABLE `tb2` (
`id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+---------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
#4.查看錶結構
mysql> desc tb1;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
#5.插入資料
mysql> insert tb1 values('11111111111');
ERROR 1264 (22003): Out of range value for column 'id' at row 1
mysql> insert tb1 values('-2147483648');
Query OK, 1 row affected (0.00 sec)
mysql> insert tb1 values('2147483648');
ERROR 1264 (22003): Out of range value for column 'id' at row 1
mysql> insert tb1 values('-2147483649');
ERROR 1264 (22003): Out of range value for column 'id' at row 1
mysql> insert tb1 values('2147483647');
Query OK, 1 row affected (0.00 sec)
#原因:插入的資料超過資料型別的長度
#1.建表
mysql> create table tb1(id int,name varchar(12));
Query OK, 0 rows affected (0.06 sec)
#2.插入資料
mysql> insert into tb1 values('1','邱導');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tb1 values('1','zengzhigaoxiang');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
#字元超過資料型別的限制值
#1.建表
mysql> create table tb4(id int,name varchar(10),sex enum('man','woman'));
Query OK, 0 rows affected (0.03 sec)
#2.插入資料
mysql> insert into tb4 values('1','邱導','man');
Query OK, 1 row affected (0.00 sec)
mysql> insert into tb4 values('2','劉大維','nan');
ERROR 1265 (01000): Data truncated for column 'sex' at row 1
#如果是列舉型別,必須插入型別指定的值,不能插入額外的值
#建學生表
id
name
sex
age
cometime
#1.建表
mysql> create table student(id int,name varchar(10),sex enum('男','nv'),age tinyint,cometime datetime);
Query OK, 0 rows affected (0.03 sec)
#2.插入資料
mysql> insert into student values('-12573','邱導','男','-18',now());
Query OK, 1 row affected (0.00 sec)
#3.檢視資料
mysql> select * from student;
+--------+--------+------+------+---------------------+
| id | name | sex | age | cometime |
+--------+--------+------+------+---------------------+
| -12573 | xxxx | 男 | -18 | 2020-10-23 18:40:15 |
+--------+--------+------+------+---------------------+
1 row in set (0.00 sec)
not null: 非空
primary key: 主鍵(唯一且非空的)
auto_increment: 自增(此列必須是:primary key或者unique key)
unique key: 唯一鍵(單獨的唯一的)
default: 預設值
unsigned: 非負數
comment: 註釋
mysql> drop table student;
Query OK, 0 rows affected (0.00 sec)
#1.修改表字符集
mysql> alter table play charset utf8mb4;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
#2.修改表名 將play表修改為student表
mysql> alter table play rename student;
Query OK, 0 rows affected (0.01 sec)
#3.給表插入欄位 給student表插入name列
mysql> alter table student add name varchar(10);
#4.給表插入多個欄位
mysql> alter table student add sex enum('男','女'),add age tinyint;
#5.插入欄位到第一列
mysql> alter table student add id int first;
#6.插入欄位到指定欄位後面
mysql> alter table student add class varchar(12) after id;
#7.刪除欄位
mysql> alter table student drop qiudao;
#8.修改列屬性
mysql> alter table student modify name varchar(20);
#9.修改列的名字和屬性
mysql> alter table student change sex xingbie enum('男','女');
#10.修改庫的字符集
mysql> alter database taobao charset utf8mb4;