看完上篇博客之后,应该MySQL的开发环境都配置好了,现在入正题,学习下MySQL的用法
一、MySQL的语句规范
(1)关键字与函数名称是要全部大写的,例如 SHOW、ALTER、
(2)数据名称,字段名称,表名称是要全部小写的
(3)SQL语句必须以英文分号 ; 结尾
ps:不知道关键字、字段名称等等的没关系,先记住,迟点涉及到这些名称的会提醒
二、对数据进行操作(通俗的说,就是找到对应仓库(数据库),对应货架(数据表),对应数据(货物)才能处理)
1、关于数据库
显示当前服务器下的数据库的SQL语句:SHOW DATABASES
若出现这种情况
这时就需要更改一下密码,直接输入
mysql>SET PASSWORD = PASSWORD("新密码”);
就重新设置密码了
然后重新打开cmd,用新密码登录账户,然后
(1)显示当前服务器下的数据库的SQL语句:SHOW DATABASES;
如图所示的四个数据库是默认存在的数据库
(2)如何创建一个数据库呢,SQL语句:CREATE DATABASE 数据库名 【 DEFAULT】 CHARACTER SET = 字符集名; //其中【】意思是可有可无,常用字符集UTF8
这时再用SHOW DATABASES就看到多了一行了
(3)如果对所创建的数据库不满意,还可以通过SQL语句:ALTER DATABASE 再加上相关语句对数据库进行改动,例如改动字符集或改名等等,
一般不建议改名,因为如果其中的数据被引用的时候,改名可能会导致出错
(4)也可以通过SQL语句;DROP DATABASE 数据库名;
来删除不想要的数据库
2、关于数据表
确定好数据库后,就要操作数据表了
(1)先用关键字use来打开指定数据库
(2)创建数据表,SQL语句:
CREATE TABLE 表名(
列名 数据类型,
列名 数据类型,
……
列名 数据类型
);
ps:记得用逗号隔开,至于数据类型,写到数据方面的时候会具体说
(3)查看数据表列表,SQL语句:SHOW TABLES 【FROM 数据库名称】
(4)查看数据表结构,SQL语句:SHOW COLUMNS FROM 表名;
(5)对表结构的一些解释
a.空值与非空:NULL——字段值可以为空;NOT NULL——字段值不可以为空
b.约束(key):这个有点复杂,下面详细讲
c.默认值(Default):当插入记录时,如果没有为字段赋值,则自动赋予默认值
(6)修改数据表
a.添加单列,SQL语句:ALTER TABLE 表名 ADD 列名 列定义【FIRST|AFTER 列名】;
b.添加多列,SQL语句:ALTER TABLE 表名 ADD (列名 列定义,列名 列定义,……);
c.删除列,SQL语句:ALTER TABLE 表名 DROP 列名;
d.修改列定义,SQL语句:ALTER TABLE 表名 MODIFY 列名 列定义【FIRST|AFTER 列名】;
e.修改列名称,SQL语句:ALTER TABLE 表名 CHANGE 旧列名 新列名 列定义【FIRST|AFTER 列名】;
f. 数据表改名:方法一:ALTER TABLE 表名 RENAME 【TO/AS】新表名;
方法二:RENAME TABLE 表名 TO 新表名【,表名 TO 新表名……】;
(7)约束:
a.约束,有条件限制的意思,可以保证数据的完整性和一致性
b.约束类型:
1、PRIMARY KEY constraint(主键约束) —— 一张数据表只存在一个主键,并且不允许为空(默认)。保证记录的唯一性,要求主键列唯一
例如id,每个人的名字,年龄等都可以完全相同,但id不一样,就可通过id来辨识不同人。
2、UNIQUE constraint(唯一约束) —— 一张表可以存在多个唯一约束,允许为空,但只能出现一个空值。保证记录的唯一性,要求约束列唯一
3、FOREIGN KEY constraint(外键约束) —— 用于在两个表之间建立关系(实现一对一,一对多的关系),需要指定引用主表的哪一列
傲娇的要求:
(1)、父表和子表必须使用同样的存储引擎InnoDB(存储引擎后面会讲)
(2)、外键列和参照列必须有相似的数据类型
4、DEFAULT constraint(默认约束) —— 某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值。
5、NOT NULL(非空约束) ——指定某列不为空
ps:给id加上主键约束,name添加唯一约束,age添加默认约束,score添加非空约束,grade添加外键约束与表follow联系在一起,表follow中的grade添加主键
其中主键id出现 的AUTO_INCREMENT可以自动从1开始赋值,每次加一,且一定要与主键一起使用,但是主键不一定与AUTO_increment一起使用。
下一篇:如何深入理解主键约束与外键约束及其他操作
原文:http://blog.csdn.net/jack_brilliant/article/details/50937978