文章目录

  • 数据表的相关操作
    • 1.MYSQL中的数据类型
      • 1)获取方式-查看帮助手册
      • 2)测试数据类型-数据表创建后
        • 测试整型
      • 测试浮点型
      • 测试字符串类型
      • 测试日期类型
    • 2.创建数据表
    • 3.查看数据库中的数据表以及表结构
    • 4.完整约束条件

数据表的相关操作

1.MYSQL中的数据类型





5.二进制类型

1)获取方式-查看帮助手册

三种方式

mysql> help CREATE DATABASE
Name: 'CREATE DATABASE'
Description:
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name[create_specification] ...create_specification:[DEFAULT] CHARACTER SET [=] charset_name| [DEFAULT] COLLATE [=] collation_nameCREATE DATABASE creates a database with the given name. To use this
statement, you need the CREATE privilege for the database. CREATE
SCHEMA is a synonym for CREATE DATABASE.URL: http://dev.mysql.com/doc/refman/5.5/en/create-database.htmlmysql> ? INT
Name: 'INT'
Description:
INT[(M)] [UNSIGNED] [ZEROFILL]A normal-size integer. The signed range is -2147483648 to 2147483647.
The unsigned range is 0 to 4294967295.URL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.htmlmysql> \h INT
Name: 'INT'
Description:
INT[(M)] [UNSIGNED] [ZEROFILL]A normal-size integer. The signed range is -2147483648 to 2147483647.
The unsigned range is 0 to 4294967295.URL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html

2)测试数据类型-数据表创建后

测试整型
mysql> -- 测试整型
mysql> CREATE TABLE test1(-> num1 TINYINT,-> num2 SMALLINT,-> num3 MEDIUMINT,-> num4 INT,-> num5 BIGINT-> );
Query OK, 0 rows affected (0.02 sec)mysql> DESC test1;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| num1  | tinyint(4)   | YES  |     | NULL    |       |
| num2  | smallint(6)  | YES  |     | NULL    |       |
| num3  | mediumint(9) | YES  |     | NULL    |       |
| num4  | int(11)      | YES  |     | NULL    |       |
| num5  | bigint(20)   | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.01 sec)mysql> -- 向表中插入记录 INSERT tab_name VALUE|VALUES(值,...);
mysql> INSERT test1 VALUES(-128,-32768,-8388608,-2147483648, -9223372036854775808);
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM test1;
+------+--------+----------+-------------+----------------------+
| num1 | num2   | num3     | num4        | num5                 |
+------+--------+----------+-------------+----------------------+
| -128 | -32768 | -8388608 | -2147483648 | -9223372036854775808 |
+------+--------+----------+-------------+----------------------+
1 row in set (0.00 sec)

整型和无符号

mysql> -- 无符号UNSIGNED
mysql> CREATE TABLE test2(-> num1 TINYINT UNSIGNED,-> num2 TINYINT-> );
Query OK, 0 rows affected (0.01 sec)mysql> DESC test2;
+-------+---------------------+------+-----+---------+-------+
| Field | Type                | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+-------+
| num1  | tinyint(3) unsigned | YES  |     | NULL    |       |
| num2  | tinyint(4)          | YES  |     | NULL    |       |
+-------+---------------------+------+-----+---------+-------+
2 rows in set (0.00 sec)mysql> INSERT test2 VALUES(0,-12);
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test2;
+------+------+
| num1 | num2 |
+------+------+
|    0 |  -12 |
+------+------+
1 row in set (0.00 sec)

整型和零填充 ZEROFILL - 显示美观

mysql> -- 零填充 ZEROFILL
mysql> CREATE TABLE test3(-> num1 TINYINT ZEROFILL,-> num2 SMALLINT ZEROFILL,-> num3 MEDIUMINT ZEROFILL,-> num4 INT ZEROFILL,-> num5 BIGINT ZEROFILL-> );
Query OK, 0 rows affected (0.02 sec)mysql> DESC test3;
+-------+--------------------------------+------+-----+---------+-------+
| Field | Type                           | Null | Key | Default | Extra |
+-------+--------------------------------+------+-----+---------+-------+
| num1  | tinyint(3) unsigned zerofill   | YES  |     | NULL    |       |
| num2  | smallint(5) unsigned zerofill  | YES  |     | NULL    |       |
| num3  | mediumint(8) unsigned zerofill | YES  |     | NULL    |       |
| num4  | int(10) unsigned zerofill      | YES  |     | NULL    |       |
| num5  | bigint(20) unsigned zerofill   | YES  |     | NULL    |       |
+-------+--------------------------------+------+-----+---------+-------+
5 rows in set (0.01 sec)mysql> INSERT test3 VALUES(1,1,1,1,1);
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM test3;
+------+-------+----------+------------+----------------------+
| num1 | num2  | num3     | num4       | num5                 |
+------+-------+----------+------------+----------------------+
|  001 | 00001 | 00000001 | 0000000001 | 00000000000000000001 |
+------+-------+----------+------------+----------------------+
1 row in set (0.00 sec)

测试浮点型

mysql> -- 测试浮点类型
mysql> CREATE TABLE test4(-> num1 FLOAT(6,2),-> num2 DOUBLE(6,2),-> num3 DECIMAL(6,2)-> );
Query OK, 0 rows affected (0.01 sec)mysql> INSERT test4 VALUES(3.1415,3.1415,3.1415);
Query OK, 1 row affected, 1 warning (0.01 sec)mysql> SHOW WARNINGS;
+-------+------+-------------------------------------------+
| Level | Code | Message                                   |
+-------+------+-------------------------------------------+
| Note  | 1265 | Data truncated for column 'num3' at row 1 |
+-------+------+-------------------------------------------+
1 row in set (0.00 sec)mysql> SELECT * FROM test4;
+------+------+------+
| num1 | num2 | num3 |
+------+------+------+
| 3.14 | 3.14 | 3.14 |
+------+------+------+
1 row in set (0.00 sec)mysql> INSERT test4 VALUES(3.2495,3.2495,3.2495);
Query OK, 1 row affected, 1 warning (0.01 sec)mysql> SELECT * FROM test4;
+------+------+------+
| num1 | num2 | num3 |
+------+------+------+
| 3.14 | 3.14 | 3.14 |
| 3.25 | 3.25 | 3.25 |
+------+------+------+
2 rows in set (0.00 sec)mysql> SELECT * FROM test4 WHERE num1=3.14;
+------+------+------+
| num1 | num2 | num3 |
+------+------+------+
| 3.14 | 3.14 | 3.14 |
+------+------+------+
1 row in set (0.00 sec)mysql> SELECT * FROM test4 WHERE num1='3.14';
Empty set (0.00 sec)mysql> SELECT * FROM test4 WHERE num3='3.14';
+------+------+------+
| num1 | num2 | num3 |
+------+------+------+
| 3.14 | 3.14 | 3.14 |
+------+------+------+
1 row in set (0.00 sec)

测试字符串类型

变长与定长字符串

mysql> -- 测试 CHAR VARCHAR
mysql> CREATE TABLE IF NOT EXISTS test5(-> str1 CHAR(5),-> str2 VARCHAR(5)-> );
Query OK, 0 rows affected (0.01 sec)mysql> INSERT test5 VALUES('1','2');
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM test5;
+------+------+
| str1 | str2 |
+------+------+
| 1    | 2    |
+------+------+
1 row in set (0.00 sec)mysql> INSERT test5 VALUES('12345','12345');
Query OK, 1 row affected (0.00 sec)mysql> INSERT test5 VALUES('','');
Query OK, 1 row affected (0.00 sec)mysql> INSERT test5 VALUES('1   ','1   ');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test5;
+-------+-------+
| str1  | str2  |
+-------+-------+
| 1     | 2     |
| 12345 | 12345 |
|       |       |
| 1     | 1     |
+-------+-------+
4 rows in set (0.00 sec)mysql> SELECT CONCAT(str1,'-'),CONCAT(str2,'-') FROM test5;
+------------------+------------------+
| CONCAT(str1,'-') | CONCAT(str2,'-') |
+------------------+------------------+
| 1-               | 2-               |
| 12345-           | 12345-           |
| -                | -                |
| 1-               | 1   -            |
+------------------+------------------+
4 rows in set (0.00 sec)
# 插入汉字  需要转换编码格式
mysql> INSERT test5 VALUES('哈哈哈哈哈','啊啊啊啊啊');
ERROR 1366 (HY000): Incorrect string value: '\xB9\xFE\xB9\xFE\xB9\xFE...' for column 'str1' at row 1

文本类型

mysql> -- TEXT
mysql> CREATE TABLE test6(-> str1 TEXT-> );
Query OK, 0 rows affected (0.01 sec)mysql> SET NAMES GBK;   #转换编码格式
Query OK, 0 rows affected (0.00 sec)mysql> INSERT test6 VALUES('天生我才必有用');
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM test6;
+----------------+
| str1           |
+----------------+
| 天生我才必有用             |
+----------------+
1 row in set (0.00 sec)

枚举类型

mysql> -- 测试枚举类型
mysql> CREATE TABLE IF NOT EXISTS test7(-> sex ENUM('男','女','保密')-> );
Query OK, 0 rows affected (0.01 sec)mysql> INSERT test7 VALUES('男');
Query OK, 1 row affected (0.01 sec)mysql> INSERT test7 VALUES('女');
Query OK, 1 row affected (0.00 sec)mysql> INSERT test7 VALUES('保密');
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM test7;
+------+
| sex  |
+------+
| 男     |
| 女    |
| 保密     |
+------+
3 rows in set (0.00 secmysql> INSERT test7 VALUES('1');     #可以用序号代替  男1   女2  保密 3
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test7;
+------+
| sex  |
+------+
| 男     |
| 女    |
| 保密     |
| 男     |
+------+
4 rows in set (0.00 sec)

集合类型

mysql> -- 测试集合类型
mysql> CREATE TABLE IF NOT EXISTS test8(-> fav SET('A','B','C','D')-> );
Query OK, 0 rows affected (0.02 sec)mysql> DESC test8;
+-------+----------------------+------+-----+---------+-------+
| Field | Type                 | Null | Key | Default | Extra |
+-------+----------------------+------+-----+---------+-------+
| fav   | set('A','B','C','D') | YES  |     | NULL    |       |
+-------+----------------------+------+-----+---------+-------+
1 row in set (0.01 sec)mysql> INSERT test8 VALUES('A,C,D');
Query OK, 1 row affected (0.00 sec)mysql> INSERT test8 VALUES('D,B,A');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test8;
+-------+
| fav   |
+-------+
| A,C,D |
| A,B,D |
+-------+
2 rows in set (0.00 sec)
# 二进制  A 1   B 2   C 4   D 8
mysql> INSERT test8 VALUES(3);
Query OK, 1 row affected (0.01 sec)mysql> INSERT test8 VALUES(15);
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test8;
+---------+
| fav     |
+---------+
| A,C,D   |
| A,B,D   |
| A,B     |
| A,B,C,D |
+---------+
4 rows in set (0.00 sec)

测试日期类型

YEAR

mysql> -- 测试YEAR类型
mysql> CREATE TABLE IF NOT EXISTS test9(-> birth YEAR-> );
Query OK, 0 rows affected (0.01 sec)mysql> INSERT test9 VALUES(1901);
Query OK, 1 row affected (0.00 sec)mysql> INSERT test9 VALUES(2155);
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM test9;
+-------+
| birth |
+-------+
|  1901 |
|  2155 |
+-------+
2 rows in set (0.00 sec)mysql> INSERT test9 VALUES('1988');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test9;
+-------+
| birth |
+-------+
|  1901 |
|  2155 |
|  1988 |
+-------+
3 rows in set (0.00 sec)mysql> INSERT test9 VALUES(12);
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test9;
+-------+
| birth |
+-------+
|  1901 |
|  2155 |
|  1988 |
|  2012 |
+-------+
4 rows in set (0.00 sec)
数字0与字符串的0不一样
mysql> INSERT test9 VALUES(0);
Query OK, 1 row affected (0.01 sec)mysql> INSERT test9 VALUES('0');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test9;
+-------+
| birth |
+-------+
|  1901 |
|  2155 |
|  1988 |
|  2012 |
|  0000 |
|  2000 |
+-------+
6 rows in set (0.00 sec)

TIME

mysql> -- 测试TIME类型   用3个字节保存时间
mysql> CREATE TABLE IF NOT EXISTS test10(-> test TIME-> );
Query OK, 0 rows affected (0.01 sec)mysql> INSERT test10 VALUES('1 12:12:12');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test10;
+----------+
| test     |
+----------+
| 36:12:12 |
+----------+
1 row in set (0.00 sec)mysql> INSERT test10 VALUES('11:11');
Query OK, 1 row affected (0.01 sec)mysql> INSERT test10 VALUES('1234');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test10;
+----------+
| test     |
+----------+
| 36:12:12 |
| 11:11:00 |
| 00:12:34 |
+----------+
3 rows in set (0.00 sec)

DATE

mysql> -- 测试DATE 用3个字节表示日期
mysql> CREATE TABLE IF NOT EXISTS test11(-> test DATE-> );
Query OK, 0 rows affected (0.01 sec)
# 可以指定分隔符
mysql> INSERT test11 VALUES('12-6-7');
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM test11;
+------------+
| test       |
+------------+
| 2012-06-07 |
+------------+
1 row in set (0.00 sec)mysql> INSERT test11 VALUES('12/6/7');
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM test11;
+------------+
| test       |
+------------+
| 2012-06-07 |
| 2012-06-07 |
+------------+
2 rows in set (0.00 sec)mysql> INSERT test11 VALUES('120607');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM test11;
+------------+
| test       |
+------------+
| 2012-06-07 |
| 2012-06-07 |
| 2012-06-07 |
+------------+
3 rows in set (0.00 sec)

2.创建数据表

CREATE TABLE [IF NOT EXISTS] tbl_name(
字段名称 字段类型 [UNSIGNED|ZEROFILL] [NOT NULL][DEFAULT][[PRIMARY] KEY|UNIQUE [KEY]] [AUTO_INCREMENT]
)ENGINE=引擎名称 CHARSET='编码方式';
-- 创建课程表 course
-- 编号 cid
-- 课程名称 courseName
-- 课程描述 courseDesc
CREATE TABLE IF NOT EXISTS course(
cid TINYINT,
courseNAME VARCHAR(50),
courseDesc VARCHAR(200)
);
mysql> # 创建maizi学院数据库
mysql>
mysql> CREATE DATABASE IF NOT EXISTS maizi DEFAULT CHARACTER SET 'UTF8';
Query OK, 1 row affected, 1 warning (0.00 sec)mysql> # 打开指定数据库
mysql> USE maizi;
Database changed
mysql> -- 创建课程表 course
mysql> -- 编号 cid
mysql> -- 课程名称 courseName
mysql> -- 课程描述 courseDesc
mysql> CREATE TABLE IF NOT EXISTS course(-> cid TINYINT,-> courseNAME VARCHAR(50),-> courseDesc VARCHAR(200)-> );
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> # 注释内容
mysql> # 创建maizi学院数据库
mysql>
mysql> CREATE DATABASE IF NOT EXISTS maizi1 DEFAULT CHARACTER SET 'UTF8';
Query OK, 1 row affected, 1 warning (0.00 sec)mysql> # 打开指定数据库
mysql> USE maizi1;
Database changed
mysql>
mysql> -- 创建学员表(user)
mysql> # 编号 id
mysql> # 用户名 username
mysql> # 年龄 age
mysql> # 性别 sex
mysql> # 邮箱 email
mysql> # 地址 addr
mysql> # 生日 birth
mysql> # 薪水 salary
mysql> # 电话 tel
mysql> # 是否结婚 married
mysql> # 注意:当需要输入中文的时候,需要临时转换客户端的编码方式  SET NAMES GBK;
mysql> # 字段注释 通过COMMENT 注释内容   给字段添加注释
mysql> CREATE TABLE IF NOT EXISTS `user`(-> id SMALLINT,-> username VARCHAR(20),-> age TINYINT,-> sex ENUM('男','女','保密'),-> email VARCHAR(50),-> addr VARCHAR(200),-> birth YEAR,-> salary FLOAT(8,2),-> tel INT,-> married TINYINT(1) COMMENT '0代表未结婚,1代表结婚'-> )ENGINE=INNODB CHARSET=UTF8;
Query OK, 0 rows affected (0.00 sec)

3.查看数据库中的数据表以及表结构

查看数据库下已有的数据表

mysql> SHOW TABLES;
+------------------+
| Tables_in_maizi1 |
+------------------+
| course           |
| user             |
+------------------+
2 rows in set (0.00 sec)

查看指定表的表结构

-- 查看表的表结构
DESC course;
DESCRIBE course;
SHOW COLUMNS FROM course;
mysql> DESC course;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| cid        | tinyint(4)   | YES  |     | NULL    |       |
| courseNAME | varchar(50)  | YES  |     | NULL    |       |
| courseDesc | varchar(200) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)mysql> DESCRIBE course;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| cid        | tinyint(4)   | YES  |     | NULL    |       |
| courseNAME | varchar(50)  | YES  |     | NULL    |       |
| courseDesc | varchar(200) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)mysql> SHOW COLUMNS FROM course;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| cid        | tinyint(4)   | YES  |     | NULL    |       |
| courseNAME | varchar(50)  | YES  |     | NULL    |       |
| courseDesc | varchar(200) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

4.完整约束条件


单字段主键

mysql> -- 测试主键
mysql> CREATE TABLE IF NOT EXISTS user1(-> id INT PRIMARY KEY,             # PRIMARY可以省略     -> username VARCHAR(20),-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 4
mysql> -- 测试主键
mysql> CREATE TABLE IF NOT EXISTS user1(-> id INT PRIMARY KEY,-> username VARCHAR(20),-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 4
mysql> -- 测试主键
mysql> CREATE TABLE IF NOT EXISTS user1(-> id INT PRIMARY KEY,-> username VARCHAR(20)-> );
Query OK, 0 rows affected (0.01 sec)mysql> DESC user1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)mysql> -- 查看创建表时的详细信息
mysql> SHOW CREATE TABLE USER1;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                     |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------+
| USER1 | CREATE TABLE `user1` (`id` int(11) NOT NULL,`username` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)mysql>
mysql> INSERT user1 VALUES(1,'king');
Query OK, 1 row affected (0.00 sec)mysql> INSERT user1 VALUES(13,'QUEEN');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user1;
+----+----------+
| id | username |
+----+----------+
|  1 | king     |
| 13 | QUEEN    |
+----+----------+
2 rows in set (0.00 sec)
# 标记成主键的字段禁止重复
mysql> INSERT user1 VALUES(13,'QUEEN');
ERROR 1062 (23000): Duplicate entry '13' for key 'PRIMARY'mysql> SELECT * FROM user1 WHERE id=1;
+----+----------+
| id | username |
+----+----------+
|  1 | king     |
+----+----------+
1 row in set (0.00 sec)

多字段主键—有多个字段确定一条记录

mysql> -- 创建多字段主键
mysql> CREATE TABLE IF NOT EXISTS user2(-> id INT,-> username VARCHAR(20),-> card CHAR(18),-> PRIMARY KEY(id,card)-> );
Query OK, 0 rows affected (0.01 sec)mysql> DESC user2-> ;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | 0       |       |
| username | varchar(20) | YES  |     | NULL    |       |
| card     | char(18)    | NO   | PRI |         |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)mysql> INSERT user2 VALUES(1,'king','111');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user2;
+----+----------+------+
| id | username | card |
+----+----------+------+
|  1 | king     | 111  |
+----+----------+------+
1 row in set (0.00 sec)
# 修改card字段 不修改id字段  这是两条记录
mysql> INSERT user2 VALUES(1,'king','112');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user2;
+----+----------+------+
| id | username | card |
+----+----------+------+
|  1 | king     | 111  |
|  1 | king     | 112  |
+----+----------+------+
2 rows in set (0.00 sec)

自增长
一个表中只能有一个自增长字段,并且必须配合主键使用
自增长只对整数类、整数列有效果

mysql> -- 测试AUTO_INCREMENT
mysql> CREATE TABLE IF NOT EXISTS user4(-> id SMALLINT KEY AUTO_INCREMENT,-> username VARCHAR(20)-> );
Query OK, 0 rows affected (0.01 sec)mysql> DESC user4;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | smallint(6) | NO   | PRI | NULL    | auto_increment |
| username | varchar(20) | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)mysql> INSERT user4 VALUES(1,'KING');
Query OK, 1 row affected (0.01 sec)mysql> INSERT user4(username) VALUES('queen1');
Query OK, 1 row affected (0.00 sec)mysql> INSERT user4 VALUES(111,'KING1');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user4;
+-----+----------+
| id  | username |
+-----+----------+
|   1 | KING     |
|   2 | queen1   |
| 111 | KING1    |
+-----+----------+
3 rows in set (0.00 sec)
#  自增长
mysql> INSERT user4 VALUES(NULL,'AAAA');
Query OK, 1 row affected (0.00 sec)mysql> INSERT user4 VALUES(DEFAULT,'AAAA');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user4;
+-----+----------+
| id  | username |
+-----+----------+
|   1 | KING     |
|   2 | queen1   |
| 111 | KING1    |
| 112 | AAAA     |
| 113 | AAAA     |
+-----+----------+
5 rows in set (0.00 sec)mysql> SHOW CREATE TABLE user4;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                           |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user4 | CREATE TABLE `user4` (`id` smallint(6) NOT NULL AUTO_INCREMENT,`username` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> CREATE TABLE IF NOT EXISTS user5(-> id SMALLINT KEY AUTO_INCREMENT,-> username VARCHAR(20)-> )AUTO_INCREMENT=100;
Query OK, 0 rows affected (0.01 sec)mysql> INSERT user6(username) VALUES('queen1');
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM user6;
+-----+----------+
| id  | username |
+-----+----------+
| 100 | queen1   |
+-----+----------+
1 row in set (0.00 sec)

修改自增长值

ALTER TABLE user6 AUTO_INCREMNET =500;

非空约束

mysql> -- 测试非空
mysql> CREATE TABLE IF NOT EXISTS user7(-> id INT UNSIGNED KEY AUTO_INCREMENT,-> username VARCHAR(20) NOT NULL,-> password CHAR(32) NOT NULL,-> age TINYINT UNSIGNED-> );
Query OK, 0 rows affected (0.02 sec)mysql> DESC user7;
+----------+---------------------+------+-----+---------+----------------+
| Field    | Type                | Null | Key | Default | Extra          |
+----------+---------------------+------+-----+---------+----------------+
| id       | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| username | varchar(20)         | NO   |     | NULL    |                |
| password | char(32)            | NO   |     | NULL    |                |
| age      | tinyint(3) unsigned | YES  |     | NULL    |                |
+----------+---------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)mysql> INSERT user7(username,password) VALUES('KING','KING');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user7;
+----+----------+----------+------+
| id | username | password | age  |
+----+----------+----------+------+
|  1 | KING     | KING     | NULL |
+----+----------+----------+------+
1 row in set (0.00 sec)mysql> INSERT user7(username,password,age) VALUES('KING','KING',12);
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user7;
+----+----------+----------+------+
| id | username | password | age  |
+----+----------+----------+------+
|  1 | KING     | KING     | NULL |
|  2 | KING     | KING     |   12 |
+----+----------+----------+------+
2 rows in set (0.00 sec)mysql> INSERT user7(username,password) VALUES(NULL,NULL);
ERROR 1048 (23000): Column 'username' cannot be null

设置默认值

mysql> -- 测试默认值
mysql> CREATE TABLE IF NOT EXISTS user8(-> id INT UNSIGNED KEY AUTO_INCREMENT,-> username VARCHAR(20) NOT NULL,-> password CHAR(32) NOT NULL,-> age TINYINT UNSIGNED DEFAULT 18,-> addr VARCHAR(50) NOT NULL DEFAULT '北京',-> sex ENUM('男','女','保密') NOT NULL DEFAULT '男'-> );
Query OK, 0 rows affected (0.00 sec)mysql> DESC user8;
+----------+------------------------+------+-----+---------+----------------+
| Field    | Type                   | Null | Key | Default | Extra          |
+----------+------------------------+------+-----+---------+----------------+
| id       | int(10) unsigned       | NO   | PRI | NULL    | auto_increment |
| username | varchar(20)            | NO   |     | NULL    |                |
| password | char(32)               | NO   |     | NULL    |                |
| age      | tinyint(3) unsigned    | YES  |     | 18      |                |
| addr     | varchar(50)            | NO   |     | 北京        |                |
| sex      | enum('男','女','保密')        | NO   |     | 男        |                |
+----------+------------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)mysql> INSERT user8(username,password) VALUES('KING','KING');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user8;
+----+----------+----------+------+------+-----+
| id | username | password | age  | addr | sex |
+----+----------+----------+------+------+-----+
|  1 | KING     | KING     |   18 | 北京     | 男    |
+----+----------+----------+------+------+-----+
1 row in set (0.00 sec)mysql> INSERT user8 VALUES(2,'QUEEN','QUEEN',29,'上海','保密');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user8;
+----+----------+----------+------+------+------+
| id | username | password | age  | addr | sex  |
+----+----------+----------+------+------+------+
|  1 | KING     | KING     |   18 | 北京     | 男     |
|  2 | QUEEN    | QUEEN    |   29 | 上海    | 保密     |
+----+----------+----------+------+------+------+
2 rows in set (0.00 sec)mysql> INSERT user8 VALUES(3,'QUEEN','QUEEN',DEFAULT,DEFAULT,'保密');
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM user8;
+----+----------+----------+------+------+------+
| id | username | password | age  | addr | sex  |
+----+----------+----------+------+------+------+
|  1 | KING     | KING     |   18 | 北京     | 男     |
|  2 | QUEEN    | QUEEN    |   29 | 上海    | 保密     |
|  3 | QUEEN    | QUEEN    |   18 | 北京     | 保密     |
+----+----------+----------+------+------+------+
3 rows in set (0.00 sec)

唯一线性约束

mysql> -- 测试 UNIQUE KEY
mysql> CREATE TABLE IF NOT EXISTS user9(-> id TINYINT UNSIGNED KEY AUTO_INCREMENT,-> username VARCHAR(20) NOT NULL UNIQUE,-> card CHAR(18) UNIQUE-> );
Query OK, 0 rows affected (0.00 sec)mysql> DESC user9;
+----------+---------------------+------+-----+---------+----------------+
| Field    | Type                | Null | Key | Default | Extra          |
+----------+---------------------+------+-----+---------+----------------+
| id       | tinyint(3) unsigned | NO   | PRI | NULL    | auto_increment |
| username | varchar(20)         | NO   | UNI | NULL    |                |
| card     | char(18)            | YES  | UNI | NULL    |                |
+----------+---------------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)mysql> SHOW CREATE TABLE user9;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user9 | CREATE TABLE `user9` (`id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,`username` varchar(20) NOT NULL,`card` char(18) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `username` (`username`),      #唯一性索引UNIQUE KEY `card` (`card`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql基础3-数据表的相关操作1相关推荐

  1. mysql显示表已存在_MySQL数据库与数据表的相关操作

    数据库相关操作: 显示数据库:show databases; 如果是0.00秒并不代表没有花费时间,而是时间非常短,小于0.01秒. 创建数据库: Query OK表示创建成功,1行受到影响,处理时间 ...

  2. MySQL数据库基础(数据表的SELECT操作)

    文章目录 数据表的操作 1.创建成绩表 2.select表达式 3.查询 4.修改(AS) 5.筛选(WHERE) 6.排序(ORDER) 7.分组(GROUP) 8.过滤(HAVING) 9.聚合函 ...

  3. 二、MySQL建库建表的相关操作

    1.创建数据库 格式: CREATE DATABASE 数据库名; 因为MySQL不区分大小写,所以哪种输入都可以.也就是说,CREATE DATABAE.Create DataBase.create ...

  4. MySQL第二讲 - 数据表简单操作 与 “增删查改的开头部分- 增”- 细节狂魔

    文章目录 前文知识点回顾   SQL语句 >>操作指令 (不区分大小写) 1.显示数据库:show databases; 2.创建数据库:create database 数据库名; [如果 ...

  5. 从零开始学 MySQL —数据库和数据表操作

    ​前言 今天我们学习下核心的内容,学习并实践如何对数据库表和表中的内容做修改,删除,重命名等操作.(想看看周末还有多少爱学习的小伙伴,你们在哪里呀,O(∩_∩)O哈哈~) 1.目录 数据库操作:删除数 ...

  6. DM8表空间相关操作及介绍

    DM8表空间相关操作及介绍 最近刚接触达梦数据库,经过基础的学习已初步掌握相关知识,下面给大家分享一下达梦8表空间的一些相关操作及介绍,后续会持续更新. 一.表空间介绍: 1.概念: 每个DM 数据库 ...

  7. MySQL基础day03_数据的导入、导出-MySQL 5.6

    MySQL基础day03_数据的导入.导出-MySQL 5.6 注:把数据按照一定格式存放到文件里才能进行数据的导入. 1,数据导入的条件 把文件里的内容保存到数据的表里: 把数据按照一定格式存放文件 ...

  8. mysql 操作表的例子,mysql中库和表的简单操作总结(附示例)

    本篇文章给大家带来的内容是关于mysql中库和表的简单操作总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一. 库的操作 1.创建数据库 创建数据库: create d ...

  9. Mysql数据库和数据表的创建和信息更改的常用指令

    文章目录 数据库和数据表的创建和信息更改 后续小实验做准备 一. 关于数据库和数据表的其它操作 1)数据库 ①创建数据库 ②显示目前所有的数据库 ③数据库重命名 2.1 先创建新库: 2.2 使用`R ...

  10. mysql综合案例 数据表的基本操作

    mysql综合案例 数据表的基本操作 创建修改删除表,掌握数据表的基本操作 创建数据库company,按下表创建两个table名为offices和employees offices表结构 字段名 数据 ...

最新文章

  1. 全面屏适配方案,终极版,华为隐藏导航栏解决方案
  2. Java中的5种同步辅助类
  3. RabbitMQ 消息队列六种模式
  4. Curator实现分布式锁的基本原理-createsTheLock
  5. LeetCode 259. 较小的三数之和(固定一点,内层双指针)
  6. SAP MM ME51N 创建采购申请单据时候永远取物料主数据基本计量单位
  7. 专访余承东:华为引领行业进步 折叠屏手机即将上市
  8. 配置hadoop 使用fair scheduler调度器
  9. .NET框架类在ASP.NET中的使用(1)——QA
  10. 2021新款外卖返利系统源码,美团/饿了么返利三级分销源码外卖返利源码下载
  11. 【组合数学】组合恒等式 ( 八个组合恒等式回顾 | 组合恒等式 积 1 | 证明 | 使用场景 | 求组合数通用方法 )
  12. 阿里云实现人脸登录(人脸库 OSS)
  13. 精彩收集的303个透明flash代码
  14. matlab的方法定义变量,Matlab定义变量的操作步骤
  15. 塞班系统微信连接不上服务器,一个时代的结束!塞班手机已无法登陆微信QQ
  16. android什么意思!读完我这份《Android开发核心源码精编解析》面试至少多要3K!面试建议
  17. ubuntu共享文件夹不显示及设备空间不足解决[随手笔记]
  18. 移动web——微金所实战项目
  19. Spring的基础知识精讲,创客学院一招教你彻底掌握
  20. POE网络变压器:谈谈网络变压器POE最新标准POE bt及需要关注的三个点

热门文章

  1. 文章,记录按内容分页显示,根据文章内容按字数进行分页(转)
  2. 爬取豌豆荚app数据(总结篇)
  3. 2014年第五届蓝桥杯国赛试题(JavaA组)
  4. zipfile.BadZipFile: File is not a zip file
  5. vue组件化学习第一天
  6. linux相关操作命令
  7. ECMAscript6入门(1)
  8. java读取照片信息 获取照片拍摄时的经纬度
  9. 收集一些关于视频文件格式以及编码计算的一些知识
  10. 洛谷 P2032 扫描