mysql笔记
查看存储引擎
mysql> SHOW ENGINES\G; *************************** 1. row *************************** Engine: MRG_MYISAM Support: YES Comment: Collection of identical MyISAM tables Transactions: NO XA: NO Savepoints: NO *************************** 2. row *************************** Engine: CSV Support: YES Comment: CSV storage engine Transactions: NO XA: NO Savepoints: NO *************************** 3. row *************************** Engine: MyISAM Support: DEFAULT Comment: Default engine as of MySQL 3.23 with great performance Transactions: NO XA: NO Savepoints: NO *************************** 4. row *************************** Engine: InnoDB Support: YES Comment: Supports transactions, row-level locking, and foreign keys Transactions: YES XA: YES Savepoints: YES *************************** 5. row *************************** Engine: MEMORY Support: YES Comment: Hash based, stored in memory, useful for temporary tables Transactions: NO XA: NO Savepoints: NO 5 rows in set (0.21 sec)
support后面的值表示存储引擎是否能够使用,YES表示能够使用, NO表示不能够使用, DEFAULT表示默认存储引擎。
存储引擎简单介绍:
InnoDB存储引擎:
支持事物的存储引擎,支持事物安全表(ACID),支持行锁定和外键,mysql5.5.5以后为默认存储引擎,具有提交、回滚、崩溃修复的事物安全。
MyISAM存储引擎:
拥有较高的插入查询速度,但是不支持事物,在mysql5.5.5之前是默认的存储引擎。
MEMORY存储引擎:
将表中的数据存储在内存中,为查询和引用其他数据提供快速访问。
登录数据库:
[root@localhost ~]# mysql -u root -h localhost -p
Enter password: 输入设定的密码
创建数据库:
mysql> CREATE DATABASE db_name;
查看数据库:
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | DVDCOLLECTION | | auth | | ba | | change01 | | db_name | | disks | | mydb | | mysql | | poll | | s | | shop | | test | +--------------------+ 14 rows in set (0.08 sec)
选择要使用的数据库:
mysql> USE db_name;
Database changed
查看数据库信息:
mysql> SHOW CREATE DATABASE db_name\G; *************************** 1. row *************************** Database: db_name Create Database: CREATE DATABASE `db_name` /*!40100 DEFAULT CHARACTER SET latin1 */ 1 row in set (0.00 sec)
删除数据库:
mysql> DROP DATABASE db_name; Query OK, 0 rows affected (0.16 sec)
直接查看默认的存储引擎:
mysql> SHOW VARIABLES LIKE "storage_engine"; +----------------+--------+ | Variable_name | Value | +----------------+--------+ | storage_engine | MyISAM | +----------------+--------+ 1 row in set (0.00 sec)
创建数据库表:
mysql> CREATE DATABASE test_db; mysql> USE test_db; Database changed mysql> CREATE TABLE tb_emp1 ( id INT(11), name VARCHAR(25), deptld INT(11), salary FLOAT ); Query OK, 0 rows affected (0.08 sec)
查看数据表:
mysql> SHOW TABLES; +-------------------+ | Tables_in_test_db | +-------------------+ | tb_emp1 | +-------------------+ 1 row in set (0.00 sec)
主键:
主键又叫主码,是表中一列或多列的组合,主键约束要求主键列的数据唯一,并且不允许为空,主键能够唯一的标识表中的唯一一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度,主键分为两种类型,单字段主键和多字段联合主键。
单字段主键:
mysql> CREATE DATABASE test_db; mysql> USE test_db; Database changed mysql> CREATE TABLE tb_emp1 ( id INT(11) PRIMARY KEY, name VARCHAR(25), deptld INT(11), salary FLOAT );
多字段联合主键:
mysql> CREATE DATABASE test_db; mysql> USE test_db; Database changed mysql> CREATE TABLE tb_emp1 ( id INT(11), name VARCHAR(25), deptld INT(11), salary FLOAT PRIMARY KEY(name,deptld) );
使用外键约束:
外键用来在两个表之间建立连接,它可以使一列或者多列,一个表可以有一个或者多个外键,一个表的外键可以为空值,如果不为空值,则一个表的外键必须对应另一个表的主键的某个值。