1.基本语法学习
使用频率最高的
MySQL[1] 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。
1.mysql的登录:需要在命令行中输入Mysql +参数:-V 版本参数 -uroot(可以不加) -p端口号(默认是3306) -P密码 -h服务器名称(本地是127.0.0.1)
eg:mysql -uroot -p -P3306 -h127.0.0.1
2.修改mysql的提示符号,
(1)mysql -uroot -p -P3306 --prompt \h [\h是修改成为本地主机名称的意思]
(2):登录成功以后修改prompt(后面可以跟的参数有\D日期 \d数据库 \h服务器 \u当前的用户)
3.常用命令以及语法:
SELECT VERSION();版本 当前的用户:
SELECT USER();
SELECT NOW();现实当前的日期:
关键字函数库大写;数据库名称,表名字,字段名称全部小写;SQL语句必须以分好结尾
4.数据库的操作:
mysql安装完成自带了四个数据库
创建数据库:CREATE {DATABASE|SCHEMA}[IF NOT EXISTS] db_name
eg:1: CREATE DATABASE classname;
2: CREATE DATABASE IF NOT EXISTS classname;-----SHOW WARNINGS;
3:SHOW CREATE DATABASE cassname;
设置编码格式:CHARACTER SET[=] utf8/gbk;
ALTER DATABASE db_name CHARACTER SET charset_name;
eg:1:CREATE DATABASE classname CHARACTER SET gbk;
修改数据库:ALTER{DATABASE|SCHEMA} [db_name] CHARACTER SET [=] utf8..
删除数据库:DROP{DATABASE|SCHEMA}[IF EXISTS] db_name;
本节涉及到的其他一些操作:SHOW DATABASES;
mysql默认的端口号是:3306
mysql中的超级用户:root
创建数据库 CREATE DATABASE
修改数据库 ALTER DATABASE
删除数据库 DROP DATABASE
5.数据类型:
(1)整数
计算机
TINYINT [0-255|-128到127] ----------------占用1个字节
SMALLINT [无符号UNSIGNED:0-65535有:-32768-32768] ------2字节
MEDIUMINT ----------------------3
INT - ------------4
BIGINT ----------------8
(2)浮点型
FLOAT[(M,D)]---D小数点后面的位数----M小数点前面和后面的总位数---常用
DOUBLE[(M,D)] 是float的十倍
(3)日期--一般是在php中用数字类型进行传唤存储,因为涉及到跨时区的问题。
YEAR 存贮需求 1 TIME DATE DATATIME TIMESTAMP
(4)字符型
一个字节=8byte(最大是111111111)
CHAR(M) M个字节 0-255 定长的类型,当不满的时候会自动以空格补齐
VARCHAR(M) 0-65535 变长类型,不会补齐
TINYTEXT L<2^8
TEXT 2^16
MEDIUMTEXT
ENUM('A','B') 枚举值:给它几个选项,他会从其中进行选择
set('a','b','c') 集合,最多有64个成员,在其中做任意的排列组合
6.数据表(表)行--记录;列---字段;
关系型的数据表,其实就是一张二维的表格。数据表是数据库的重要组成部分。
USE命令+数据库名称:使用某一个已经存在的数据库,打开数据库;eg:USE test;----打开表:SELECT DATABASE();
CREATE TABLE classname(
username VARCHAR(20),
age TINYINT UNSIGNED // unsigned,
salary FLOAT(8,2) UNSGINED
);
查看数据表:SHOW TABLES; 查看其它数据表:SHOW TABLES FROM mysql(比如mysql);
SHOW TABLES;
SHOW TABLES FROM mysql;
SELECT DATABASE();查看是在那个数据库
查看数据表的结构:SHOW COLUMNS FROM tab1_name;
SHOW COLUMNS FROM name; // 查看数据表的结构
数据表就是一张二维的表格,行叫做记录。如何写入记录呢?首先要创建数据表:
向数据表中写入命令:INSERT tab_name VALUES;
INSERT name VALUES('anikin',23,5000.22);INSERT name(username,salary) VALUES('jack',6000.8);
记录查找:SELECT ...FROM tab_name;---
eg:SELECT * FROM tab1;会看到所有的数据表记录
NULL.字段值可以为空
NOT NULL,字段禁止为空
7.主键
比如银行中的账目,卡号就是主键,如果卡号重复了,钱算谁的呢,下面是理论解释:
数据库主键
主键:表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。
自动编号:AUTO_INCREMENT,起始值为1;必须定义为主键,一张数据表只有一个
自动编号的类型必须是整数,如果是浮点数的话小数位数必须是0;
主键约束(PRIMARY KEY),主键保证记录的唯一性;主键是可以赋值的。
auto_increment必须和primary key使用,而primary key不一定要和auto_increment使用.
主键是可以赋值的
唯一约束:UNIQUE KEY一张数据表可以有多个,也可以为空值,二者在创建索引的时候也是有区别的
举例二者说明:
CREATE TABLE m3(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(20) NOT NULL UNIQUE KEY,
age TINYINT UNSIGNED);
INSERT m3(username,age) VALUE('jack',66); //这个地方会报错-->说明唯一约束和主键约束
INSERT m3(username,age) VALUE('jack',22);
可以保证记录的唯一性,唯一约束的字段可以为null值,每张数据表可以存在存在多个唯一约束。
默认约束:如果没有明确的为字段复制,则自动赋予默认值;
唯一约束:可以保证记录的唯一性,主键一张表可以有多个,可以为空
主键约束和唯一约束的区别:
CREATE TABLE tb4(默认约束:
id SMALLINT NOT NULL AUTO_CREMENT PRIMARY KEY, //主键约束是默认不能为空,因此NOT NULL其实可以不写
username VARCHAR(20) UNIQUE KEY,
age TINYINT NOT NULL
);
SHOW COLUMNS FROM tb4;
INSERT tb4(username,age) VALUES('anikin',23);INSERT tb4(username,age) VALUES('anikin',24); //这个时候就会出错,因为username字段已经出现过anikin
当插入记录时候,没有明确为字段赋值,则系统自动默认值 default
CREATE TABLE tb6(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
sex ENUM('1','2','3')DEFAULT '3'
);
SHOW COLUMNS FROM tb6;
INSERT tb6(username) VALUES('anikin');
SELECT* FROM tb6;
![mysql学习 - 眷恋天空的驴 - 迷茫。。。。。 mysql学习 - 眷恋天空的驴 - 迷茫。。。。。](http://img0.ph.126.net/abTNuOVMUsyhARF5WHzvPA==/6631398718699508346.png)