mysql基础3-数据表的相关操作1
文章目录
- 数据表的相关操作
- 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相关推荐
- mysql显示表已存在_MySQL数据库与数据表的相关操作
数据库相关操作: 显示数据库:show databases; 如果是0.00秒并不代表没有花费时间,而是时间非常短,小于0.01秒. 创建数据库: Query OK表示创建成功,1行受到影响,处理时间 ...
- MySQL数据库基础(数据表的SELECT操作)
文章目录 数据表的操作 1.创建成绩表 2.select表达式 3.查询 4.修改(AS) 5.筛选(WHERE) 6.排序(ORDER) 7.分组(GROUP) 8.过滤(HAVING) 9.聚合函 ...
- 二、MySQL建库建表的相关操作
1.创建数据库 格式: CREATE DATABASE 数据库名; 因为MySQL不区分大小写,所以哪种输入都可以.也就是说,CREATE DATABAE.Create DataBase.create ...
- MySQL第二讲 - 数据表简单操作 与 “增删查改的开头部分- 增”- 细节狂魔
文章目录 前文知识点回顾 SQL语句 >>操作指令 (不区分大小写) 1.显示数据库:show databases; 2.创建数据库:create database 数据库名; [如果 ...
- 从零开始学 MySQL —数据库和数据表操作
前言 今天我们学习下核心的内容,学习并实践如何对数据库表和表中的内容做修改,删除,重命名等操作.(想看看周末还有多少爱学习的小伙伴,你们在哪里呀,O(∩_∩)O哈哈~) 1.目录 数据库操作:删除数 ...
- DM8表空间相关操作及介绍
DM8表空间相关操作及介绍 最近刚接触达梦数据库,经过基础的学习已初步掌握相关知识,下面给大家分享一下达梦8表空间的一些相关操作及介绍,后续会持续更新. 一.表空间介绍: 1.概念: 每个DM 数据库 ...
- MySQL基础day03_数据的导入、导出-MySQL 5.6
MySQL基础day03_数据的导入.导出-MySQL 5.6 注:把数据按照一定格式存放到文件里才能进行数据的导入. 1,数据导入的条件 把文件里的内容保存到数据的表里: 把数据按照一定格式存放文件 ...
- mysql 操作表的例子,mysql中库和表的简单操作总结(附示例)
本篇文章给大家带来的内容是关于mysql中库和表的简单操作总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一. 库的操作 1.创建数据库 创建数据库: create d ...
- Mysql数据库和数据表的创建和信息更改的常用指令
文章目录 数据库和数据表的创建和信息更改 后续小实验做准备 一. 关于数据库和数据表的其它操作 1)数据库 ①创建数据库 ②显示目前所有的数据库 ③数据库重命名 2.1 先创建新库: 2.2 使用`R ...
- mysql综合案例 数据表的基本操作
mysql综合案例 数据表的基本操作 创建修改删除表,掌握数据表的基本操作 创建数据库company,按下表创建两个table名为offices和employees offices表结构 字段名 数据 ...
最新文章
- 全面屏适配方案,终极版,华为隐藏导航栏解决方案
- Java中的5种同步辅助类
- RabbitMQ 消息队列六种模式
- Curator实现分布式锁的基本原理-createsTheLock
- LeetCode 259. 较小的三数之和(固定一点,内层双指针)
- SAP MM ME51N 创建采购申请单据时候永远取物料主数据基本计量单位
- 专访余承东:华为引领行业进步 折叠屏手机即将上市
- 配置hadoop 使用fair scheduler调度器
- .NET框架类在ASP.NET中的使用(1)——QA
- 2021新款外卖返利系统源码,美团/饿了么返利三级分销源码外卖返利源码下载
- 【组合数学】组合恒等式 ( 八个组合恒等式回顾 | 组合恒等式 积 1 | 证明 | 使用场景 | 求组合数通用方法 )
- 阿里云实现人脸登录(人脸库 OSS)
- 精彩收集的303个透明flash代码
- matlab的方法定义变量,Matlab定义变量的操作步骤
- 塞班系统微信连接不上服务器,一个时代的结束!塞班手机已无法登陆微信QQ
- android什么意思!读完我这份《Android开发核心源码精编解析》面试至少多要3K!面试建议
- ubuntu共享文件夹不显示及设备空间不足解决[随手笔记]
- 移动web——微金所实战项目
- Spring的基础知识精讲,创客学院一招教你彻底掌握
- POE网络变压器:谈谈网络变压器POE最新标准POE bt及需要关注的三个点