一、安装MySQL数据库
1.安装mysql注意事项
下载MySQL的官网地址:https:/dev.mysql.com/downloads/mysql/
可以自行选择合适的版本进行安装。建议先去百度下载MySQL的安装过程,不然要是安装或配置错误,卸载不干净重新安装比较麻烦。
当我们安装并配置好MySQL后,我们可以打开dos命令窗口并输入:mysql -u用户名 -p密码
mysql -proot -u
一般来说root就是我们的用户名,-u后面输入我们之前设置的密码,enter键之后就可以显示我们mysql的信息了。如果不想让旁边的人看到自己的密码,我们也可以在-u后面直接enter,之后我们输出的密码就是*符了。
另外要注意的是,当我们修改my.ini文件中的信息时,关闭之后记得先停止mysql的服务,然后再重新启动,这样我们更改的信息才会生效。
检查mysql服务是否以及开启:右击“计算机”图标,选择“管理”,打开“计算机管理”,选择“服务和应用进程”,单机“服务”节点,在右侧的窗格中就显示了windows系统的所有服务,里面可以找到mysql的服务。
1.1MySQL中数据库的类型
MySQL中的数据库分为系统数据库和用户数据库两大类。
系统数据库:是安装完mysql服务器后,MySQL会附带的系统数据库。
用户数据库:是根据用户的实际需求创建的数据库。
2.认识SQL
SQL的全称是“结构化查询语言”(Structured Query Language)。SQL语言不同于java这样的程序设计语言,SQL语言是只能被数据库识别的指令。
SQL的组成:
- DML(Data Manipulation Language,数据操作语言,也称为数据操纵语言):用来插入,修改,删除数据库中的数据,insert,update,delete
- DDL(Data Definiton Language,数据定义语言):用来建立数据库,数据库对象,定义数据表结构等,create,drop,alter
- DQL(Data Query Language,数据查询语言):用来对数据库中的数据进行查询,select
- DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,grant,revoke
除此之外,SQL还包括变量说明,内部函数等其他命令。
3.SQL中的运算符
(1)算数运算符:加(+),减(-),乘(*),除(/),取余(%)
(2)赋值运算符:=
(3)比较运算符:=,>,<,<>,>=,<=,!=、
注意:比较运算符的计算结果为布尔类型,即返回值是false或者true。、
(4)逻辑运算符:and,or,not
and:当两个表达式的值都为true时,结果返回true。
or:当两个表达式中有一个及一个以上为true时,结果返回true。也可以说当两个表达式都为false时,结果返回false。
not:对布尔表达式的值取反,优先级别最高。
#代码含义:
not(性别='男') and (年龄>=18 and 年龄<=45)
即:年龄在18到45的非男性
4.MySQL数据库的基本操作
(1)创建数据库
语法格式:
create database 数据库名;
例如:创建名为test的数据库,create database test;
注意:在语句结尾需要使用英文半角分号(;)作为一条命令的结束符,在windows下,默认不区分大小写。
(2)查看数据库表
语法格式:
show databases;
使用这条SQL语句能够查看系统数据库和用户数据库。
(3)选择数据库
语法格式:
use 数据库名;
当我们需要使用test数据库时,可以用:use test; 这条SQL语句,当出现“database changed”时,表示数据库已经更换。
(4)删除数据库
语法格式:
drop database 数据库名;
删除数据库test:drop database test;
二、使用SQL语句操作数据表
1.数据类型
(1)数值类型:tinyint[(M)],samllint[(M)],mediumint[(M)],int[(M)],float[(M,D)],double[(M,D)],decimal[(M[,D])]
M表示显示宽度,也就是最多能显示的数字个数,与该类型的取值范围无关。若数据位数大于显示宽度,只要不超过该类型取值范围,则以实际位数显示,繁殖数据位数如果小于指定宽度,则以空格填充。
M:最大精度位数总位数,M的取值范围是1-65,默认值是10;
D:小数位精度位数,D的取值范围是0-30;
(2)字符串类型:
char[(M)],varchar[(M)],tinytext,text
char是定长度字符串,例如:char(10)这个意思就是将某个字段的数据类型赋为最多10个字节的字符串。若是赋的值不足10个字节,但是在数据库里还是会占用剩余字节空间,容易造成空间浪费。
varchar是可变长度字符串,例如:varchar(10)这个意思就是将某个字段的数据类型赋为0-10个字节的可变长度字符串,这个类型的字符串会根据我们给其赋的值来分配字节空间,不会造成空间浪费。
tinytext是微型文本串,可以用于存储一些较短的段落之类的。
text是文本串,可以存储较长的篇章,新闻之类的。
(3)日期类型:
date:YYYY-MM-DD
datetime:YYYY-MM-DD hh:mm:ss
time:hh:mm:ss
timestamp:YYYYMMDDHHMMSS
year:YYYY
若某字段的为time类型的,则"14-23-43","14.23.43"这些都是一样的,任何标点符号都可以作为日期部分之间的间隔符。
2.创建表
创建表语法格式:
create table 表名(
字段1 数据类型 [字段属性|约束][索引][注释]
字段2 数据类型 [字段属性|约束][索引][注释]
字段3 数据类型 [字段属性|约束][索引][注释]
......
)[表类型][表字符集][注释];
在MySQL中,若是某字段名,表名,数据库名等与保留字冲突,则使用反界定符(`)括起来。例如:student冲突,则使用`student`这样就不会了。
3.MySQL常用注释符
单行注释符:#
多行注释符:/*....*/
4.字段的约束
not null(非空约束):使用这个约束可以使某个字段的值不能为空。
default(默认约束):可以赋予某字段一个默认值,若一个字段未被赋值,则该字段的值为默认值。
unique key(UK,唯一约束):设置了这个约束的字段,其值是唯一的,不能重复出现。
primary key(PK,主键):唯一的标识表里的每一行。
foreign key(FK,外键):用于在两表间建立约束,需要指定引用主表的哪一字段。设置了外键的表在更新或插入表时会受到限制,检查是否符合约束的限制,不符合约束的限制则会操作失败。
auto_increment(自动增长约束):使用此约束,可以将某列设为自增字段,默认每条自增1,通常用于设置主键,而且该数据类型只能为整数类型。
5.设置主键
设置单字段主键:
create table test(A char(2) primary key );
设置多字段主键:
create table test(
A char(2),
B char(2),
primary key(A,B)
);
上面两种是在表内定义主键约束,在表外定义主键约束语法格式:
alter table 表名 add constraint 主键名 primary key 表名(主键字段)
注释:在创建表的同时可以为表或字段添加说明性文字,这就是注释。注释使用comment来添加。
create table test(...)comment='测试表';
编码格式设置:
create table test(...)charset=字符集名;
6.设置外键
表内设置外键:
create table test01(
A char(2) primary key,
B char(2)
);
create table test02(
C char(2),
D char(2),
[constraint 外键名] foreign key references test01 (A)#创建与test01表A字段关联的外键
);
[]符号里面的内容可省略
表外设置外键语法格式:
alter table 表名 add constraint 外键名 foreign key(外键字段) references 关联表名(关联字段)
7.查看表
语法格式:
show tables;
查看数据库的所有表。
查看表的定义语法格式:
desc 表名;
#查看test表的结构:
desc test;
或者 describe test;
8.删除表
语法格式:
drop table [if exists] 表名;
先检验该表是否存在,若存在,则删除该表。
9.修改表
修改表名语法格式:
alter table <旧表名> rename [to] <新表名>;
alter table test rename test01;
添加字段语法格式:
alter table 表名 add 字段名 数据类型[属性];
alter table test add E char(2);
修改字段语法格式:
alter table 表名 change 原字段名 新字段名 数据类型[属性];
alter table test change A F char(2);#将字段名为A的改为F
删除字段语法格式:
alter table 表名 drop 字段名;
alter table test drop A;#删除字段名为A的字段
修改数据类型语法格式:
alter table 表名 modify column 字段名 数据类型;
alter table test modify column A varchar(3);
#将字段A数据类型为char(2)的改为varchar(3);
10.help命令
MySQL中查看帮助的命令是help,语法如下:
help 帮助内容;
当我们忘记某些修改表的时候,我们就可以使用help命令了:
help alter table;
使用这个语句,我们就可以查看修改表结构的SQL语句。