1)MySQL安装:(附件是MySQL的安装教程)
首先是关于MySQL的安装,大家可以去mysql.com上直接下载,不建议下载安装zip压缩版的,我安装的是mysql-Installer-community-5.6.10.1.msi。这个直接点击下一步,就可以安装,安装时注意端口号选择的是3306,用户名是root,密码自定义,安装后,在环境变量中设置path。将安装的bin目录添加到path中。这样,就把mysql安装好了。
2)与Mysql服务器的连接和断开:
连接:在dos下,输入 mysql -u用户名 -p密码 [-hIP]
如果是本地的话,[-hIP]可省略,例如我的用户名和密码都是root,可以这样连接到服务器:
mysql -uroot -proot 注意是有空格的。
断开,直接键入exit或者quit即可断开mysql服务器。
3)基本命令:
在mysql这个数据库管理系统中可以包含多个数据库,每个数据库又包含多张table。
显示所有数据库:show databases;
切换到某一数据库:use 数据库名;
在某一数据库下,查看该数据库中的全部表:show tables;
创建数据库:create database 数据库名;
(附:常用的基本数据类型:
整型:int,bigint ;浮点型:float double decimal(m,d)其中该数字共有m位,其中有小数d位。
字符型:char,定长字符 varchar 可变长字符。text longtext,这两个用于存储长文本数据。
日期:date: yyyy-mm-dd time:hh:mm:ss
datetime: yyyy-mm-dd hh:mm:ss )
创建表:eg:
create table t_stu{
id int,
stuname varchar(10),
stuage int,
stuaddress varchar(20),
primary key(id)
)
其中id是主键,用于唯一标示一条记录;创建一张表时,总要定义主键;主键也业务无关,不能修改们不能重用,即使某一主键被删除了,也不可以重新使用;主键不能为null。
在创建表时,主键也可以使用自增模式:id int auto_increment,这样在插入数据时,就不用再给主键赋值。
在创建表时,如果某个属性不能为空,可以使用not null 比如上面的创建中,要求stuname不为空,可以:stuname varchar(10) not null.
创建表时,如果想某个属性在不赋值时,有默认值,可使用default 例如,stuaddress默认值设置为郑州,可以:stuaddress varchar(20) default '郑州',
创建表时,如果想某个属性不被重复,且不为空,例如stuname,要求唯一确定,可以 stuname varchar(10) not null unique,
删除一个表:drop table 表名;
查询表中所有数据:select * from 表名;
更改表:添加一列:alter table stu add tel varchar(20);
删除一列:alter table stu drop column tel;
重命名:rename table oldname to newname;
导出数据库:先要退出服务器,然后再黑框中键入;mysqldump -hlocalhost -u用户名 -p密码 数据库名>目录
例如,我将自己创建的数据库mydb导出到D:/a.sql中,可以:mysqldump -hlocalhost -uroot -proot mydb>d:/a.sql即可。
批量导入SQL脚本:在连接服务器后的某一数据库中,键入:source 目录
一次性向表中插入多条记录:比如向t_stu表中插入多个记录:insert into t_stu(stuname,stuage,stuaddress) values ('tom',23,'USA'),('lily',21,'China'),('jerry',24,'USA')
注:插入的列的数量和值的数量必须相同;每个值的类型要与对应的列相匹配;
4)逻辑运算符:等于 =;不等于 != 或<>;在指定的两个数之间 between;(包含这两个数),大于,小于,大于等于和小于等于,与java相同。
关系运算符:and or not
5)更新记录信息:eg:update t_stu set name ='rose' where id = 2;
其中where后接一个条件。约束要更新的是哪一个记录。
6)删除:delete from t_stu[where id = 2]; 如果没有中括号,将删除该表中的所有记录,但该表还存在 ,而drop删除时,则是连同表一块删除的。
或:truncate table t_stu; 删除表中所有记录,效率比delete更快。
7)表设计的三大范式:1、确保每列的原子性 2、在第一范式的基础上,确保每列都和主键相关 3、在第二范式的基础上,确保每列都和主键直接相关,而不是间接相关。
由于三大范式,就引入了表的拆分。进而有了外键。
关于外键:1、有外键的表称为子表,主键被其他表引入作为外键的表称为主表。
2、子表中外键列中添加的数据必须在主表的主键中存在。
3、删除主表数据时,如果子表中有引用,则删除失败。
4、子表的外键数据类型要与主表的主键数据类型相同。
5、创建外键约束:
alter table t_stu add classid int;
alter table t_stu add constraint fk_class foreign key(classid) reference t_class(id);
其中t_class也是一个表,是主表。
6、删除外键:alter table t_stu drop foreign key fk_class;