MySQL基础二:数据表操作
来源:互联网 发布:finalcap唱词字幕软件 编辑:程序博客网 时间:2024/05/21 06:20
参考该网站:http://www.imooc.com/video/2004
显示所有数据库:
mysql> SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sakila || sys || t2 || world |+--------------------+
打开一个数据库:
mysql> USE worldDatabase changed显示当前打开的数据库:
mysql> SELECT DATABASE();+------------+| DATABASE() |+------------+| world |+------------+1 row in set (0.00 sec)创建数据表:
mysql> CREATE TABLE IF NOT EXISTS tb1( -> username VARCHAR(20),#字段,可变字符20字节、 -> age TINYINT UNSIGNED,#微型的整数、 -> salary FLOAT(8,2) UNSIGNED #浮点型,总共八位,小数两位、 -> );Query OK, 0 rows affected (0.32 sec)查看数据表:
mysql> SHOW TABLES -> ;+-----------------+| Tables_in_world |+-----------------+| city || country || countrylanguage || tb1 |+-----------------+4 rows in set (0.01 sec)查看其他数据库的数据表:
mysql> SHOW TABLES FROM mysql -> ;+---------------------------+| Tables_in_mysql |+---------------------------+| columns_priv || db || engine_cost || event || func || general_log || gtid_executed || help_category || help_keyword || help_relation || help_topic || innodb_index_stats || innodb_table_stats || ndb_binlog_index || plugin || proc || procs_priv || proxies_priv || server_cost || servers || slave_master_info || slave_relay_log_info || slave_worker_info || slow_log || tables_priv || time_zone || time_zone_leap_second || time_zone_name || time_zone_transition || time_zone_transition_type || user |+---------------------------+31 rows in set (0.00 sec)
查看数据表结构:
mysql> SHOW COLUMNS FROM tb1;+----------+---------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+----------+---------------------+------+-----+---------+-------+| username | varchar(20) | YES | | NULL | || age | tinyint(3) unsigned | YES | | NULL | || salary | float(8,2) unsigned | YES | | NULL | |+----------+---------------------+------+-----+---------+-------+3 rows in set (0.03 sec)
向数据表中写入记录:
mysql> INSERT INTO tb1 VALUES('tom',25,7863.25);#其中INTO可以省略Query OK, 1 row affected (0.17 sec)第二种写入方法,不是所有字段都赋值;
mysql> INSERT tb1(username,salary) VALUES('John',4500.69);Query OK, 1 row affected (0.11 sec)
记录查找用select语句,*表示字段的过滤:
mysql> SELECT * FROM tb1;+----------+------+---------+| username | age | salary |+----------+------+---------+| tom | 25 | 7863.25 || John | NULL | 4500.69 |+----------+------+---------+2 rows in set (0.02 sec)
NULL字段是可以为空,可缺省;NOT NULL 是不可缺省:
mysql> CREATE TABLE tb2( -> username VARCHAR(20) NOT NULL, -> age TINYINT UNSIGNED NULL #其中NULL可以省略 -> );Query OK, 0 rows affected (0.33 sec)mysql> SHOW COLUMNS FROM tb2;+----------+---------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+----------+---------------------+------+-----+---------+-------+| username | varchar(20) | NO | | NULL | || age | tinyint(3) unsigned | YES | | NULL | |+----------+---------------------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> INSERT tb2 VALUES('TOM',NULL);Query OK, 1 row affected (0.04 sec)mysql> SELECT * FROM tb2;+----------+------+| username | age |+----------+------+| TOM | NULL |+----------+------+1 row in set (0.00 sec)mysql> INSERT tb2 VALUES(NULL,26);ERROR 1048 (23000): Column 'username' cannot be null
mysql> CREATE TABLE tb3( -> id SMALLINT UNSIGNED AUTO_INCREMENT, -> username VARCHAR(30) NOT NULL -> );ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key创建带主键的自动编号表:
<pre name="code" class="sql">mysql> CREATE TABLE tb3( -> id SMALLINT UNSIGNED AUTO_INCREMENT, -> username VARCHAR(30) NOT NULL -> );ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a keymysql> CREATE TABLE tb3( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(30) NOT NULL -> );Query OK, 0 rows affected (0.20 sec)mysql> SHOW COLUMNS FROM tb3;+----------+----------------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+----------------------+------+-----+---------+----------------+| id | smallint(5) unsigned | NO | PRI | NULL | auto_increment || username | varchar(30) | NO | | NULL | |+----------+----------------------+------+-----+---------+----------------+2 rows in set (0.03 sec)mysql> INSERT tb3(username) VALUES('Tom');Query OK, 1 row affected (0.05 sec)mysql> INSERT tb3(username) VALUES('John');Query OK, 1 row affected (0.06 sec)mysql> INSERT tb3(username) VALUES('Rose');Query OK, 1 row affected (0.05 sec)mysql> INSERT tb3(username) VALUES('Dimitar');Query OK, 1 row affected (0.05 sec)mysql> SELECT * FROM tb3;+----+----------+| id | username |+----+----------+| 1 | Tom || 2 | John || 3 | Rose || 4 | Dimitar |+----+----------+4 rows in set (0.00 sec)mysql> CREATE TABLE tb4( -> id SMALLINT UNSIGNED PRIMARY KEY, -> username VARCHAR(20) NOT NULL -> );Query OK, 0 rows affected (0.19 sec)
主键可以没有AUTO_INCRMENT:
mysql> SHOW COLUMNS FROM tb4;+----------+----------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+----------+----------------------+------+-----+---------+-------+| id | smallint(5) unsigned | NO | PRI | NULL | || username | varchar(20) | NO | | NULL | |+----------+----------------------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> INSERT tb4 VALUES(4,'Tom');Query OK, 1 row affected (0.06 sec)mysql> INSERT tb4 VALUES(22,'John');Query OK, 1 row affected (0.21 sec)mysql> SELECT * FROM tb4;+----+----------+| id | username |+----+----------+| 4 | Tom || 22 | John |+----+----------+2 rows in set (0.00 sec)mysql> INSERT tb4 VALUES(22,'Rose');ERROR 1062 (23000): Duplicate entry '22' for key 'PRIMARY'
另外一个唯一约束,unique约束,创建一个既有主键又有唯一的表:
mysql> CREATE TABLE tb5( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) NOT NULL UNIQUE KEY, -> age TINYINT UNSIGNED -> );Query OK, 0 rows affected (0.22 sec)mysql>mysql> SHOW COLUMNS FROM tb5;+----------+----------------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+----------------------+------+-----+---------+----------------+| id | smallint(5) unsigned | NO | PRI | NULL | auto_increment || username | varchar(20) | NO | UNI | NULL | || age | tinyint(3) unsigned | YES | | NULL | |+----------+----------------------+------+-----+---------+----------------+3 rows in set (0.00 sec)mysql> INSERT tb5(username,age) VALUES('Tom',22);Query OK, 1 row affected (0.04 sec)mysql> INSERT tb5(username,age) VALUES('Tom',22);ERROR 1062 (23000): Duplicate entry 'Tom' for key 'username'
默认约束:
mysql> CREATE TABLE tb6( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(20) NOT NULL UNIQUE KEY, -> sex ENUM('1','2','3') DEFAULT '3' -> );Query OK, 0 rows affected (0.25 sec)mysql> SHOW COLUMNS FROM tb6;+----------+----------------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------+----------------------+------+-----+---------+----------------+| id | smallint(5) unsigned | NO | PRI | NULL | auto_increment || username | varchar(20) | NO | UNI | NULL | || sex | enum('1','2','3') | YES | | 3 | |+----------+----------------------+------+-----+---------+----------------+3 rows in set (0.00 sec)mysql> SELECT * FROM tb6;Empty set (0.00 sec)
0 0
- MySQL基础二:数据表操作
- MySQL之操作数据表二
- 创建mysql数据表基础操作
- MySQL学习8:操作数据表(二)
- MYSQL数据库,数据表简单操作(二)
- MySQL(二)--数据表的基本操作
- MySQL笔记 二 数据类型与操作数据表
- mysql 二 数据类型与操作数据表
- MySQL-数据类型与操作数据表(二)
- MySQL基础二之数据类型与创建数据表
- MySQL数据表的基本操作二:表结构修改
- MySQL数据库学习&整理(二)数据类型与操作数据表
- MyBatis(二)--对MySQL数据表进行CRUD操作
- mysql从零开始(二)对数据表的操作
- MySQL知识(二)——数据表的基本操作
- MySQL学习14:操作数据表中的记录(二)
- MySQL基础(四)——操作数据表
- mysql基础(2)——数据表的基本操作
- Linux下制作raid1
- hadoop在进行二次排序的时候程序运行停止了
- 从钥匙串中获取唯一标示符
- UFT 12破解&无限试用
- Day7、Python
- MySQL基础二:数据表操作
- UOJ round13 T2Ernd
- Button简单使用
- Android——四大组件的协同工作
- 深度分析游戏中的随机概率
- 排序(三)---归并排序
- 用MSBuild和Jenkins搭建持续集成环境(1)
- 小工程——棋盘游戏:(人机交互)
- PHP PSR-4 Autoloader 自动加载(中文版)