/*本笔记依托于与MySQL的零距离接触(慕课网)*/
既然是学MySQL你得有个MySQL吧,当安装好MySQL后我们需要用命令行(是的,这个系列不涉及图形化界面操作,全部是命令行)来启动MySQL
1 |
mysql -uroot -p |
当然这时Linux下LNMP一键安装环境中MySQL的打开方式,有的时候可能需要下面这种写法
1 |
mysqld -uroot -p |
因为是MySQL笔记,我不想过多的涉及Command的相关知识,当然我们也可以用集成环境来实现比较便捷的MySQL的安装与打开,例如WAMP,phpStudy等等
按照国际惯例,学知识开头首先应该写的就是数据类型,先写上
以上就是MySQL的常用数据类型(图片截屏自慕课网),需要根据自己的需要来选择数据类型,不然会造成不必要的内存开销
下面是MySQL的基本SQL语句
创建数据表
行:记录;列:字段
1 |
USE database_name; |
打开某一数据库(前提是数据库需要存在)
1 |
SHOW DATABASES; |
显示所有数据库
1 |
SELECT DATABASE(); |
显示当前用户打开的数据库
1 2 3 4 5 |
CREATE TABLE [IF NOT EXISTS] table_name( column_name data_type, ); |
创建数据表
1 |
SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]; |
查看数据表
1 |
SHOW COLUMNS FROM tbl_name; |
查看数据表的结构
1 |
INSERT [INTO] tbl_name [(col_name,…)] VALUES(val,…); |
插入一条记录,中间的可省略参数为列名称,如果省略就必须为所有字段都赋值
1 |
SELECT expr,… FROM tbl_name; |
按照expr条件查找符合条件的记录(简单版),这里的expr过滤的是字段而不是记录
1 2 3 4 5 6 7 |
CREATE TABLE s2 ( username VARCHAR(20) NOT NULL, age TINYINT UNSIGNED NULL ); |
其中NULL和NOT NULL表示了字段是否允许为空,只能二选一
1 2 3 4 5 6 7 |
CREATE TABLE s3( id SMALLINT UNSIGNED AUTO_INCREMENT [PRIMARY] KEY, username VARCHAR(30) NOT NULL ); |
创建一个主键约束的自动编号的数据表,其中AUTO_INCREMENT生效的前提必须是该字段已经被设置为PRIMARY KEY,否则即将报错,PRIMARY KEY默认为NOT NULL,且一张数据表只有一个PRIMARY KEY,PRIMARY KEY保证记录的唯一性,但是PRIMARY KEY不强制AUTO_INCREMENT
1 2 3 4 5 6 7 8 9 |
CREATE TABLE s5( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20) NOT NULL UNIQUE KEY, age TINYINT UNSIGNED ); |
这里与上面不同的一点就在于username使用了UNIQUE KEY,UNIQUE KEY是唯一约束,区别于PRIMARY KEY的就是UNIQUE KEY可以在一个表中出现多次,UNIQUE KEY约定的内容不能重复
1 2 3 4 5 |
CREATE TABLE s7( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20) NOT NULL UNIQUE KEY, sex ENUM('1','2','3') DEFAULT '3' ); |
我们也可以为某一个属性设定初始值,例如在上述表结构中我们对sex适用了ENUM(枚举)类型,并用DEFAULT关键字设置了该项的默认值,这样当我们不给sex赋值时sex的值默认就被设置为3
掌握了上述SQL语句我们就可以创建数据表并向数据表中添加数据了。内容不是很难就是需要记忆的东西比较多