#1024程序员节|用代码,改变世界#
1.数据库和应用程序
应用程序
作用:响应操作并显示结果、向数据库请求数据 要求:美观、操作简单方便
数据库
作用:存储数据、检索数据、生成新的数据 要求:统一、安全、性能等
2.时下流行的数据库
Oracle
Oracle公司的产品 产品 免费、服务收费
SQL Server
针对不同用户群体的多个版本 易用性好
MySQL
开放源代码 网站应用广泛
MySQL的优势:
运行速度快 使用成本低 可移植性强 适用用户广
3.数据库的基本概念
数据库就是“数据”的“仓库 ” 数据库中包含表、关系以及操作对象 数据存放在表中
4.数据库管理系统(DBMS:data base manage system)
5.打开windows服务:Windows+r 输入services.msc
6.连接数据库时操作步骤:
(1.)首先打开管理员权限的cmd,输入net start musql80 开启服务(电脑每次重启都需要开启服务),然后再进普通权限的cmd,输入第(2)或(3)步骤里面的命令,如下:
(2)mysql -u root -p(-u 用户名 -p(密码) 注意:这是默认登录当前电脑省略了IP地址和端口号3306)
(3)mysql -h localhost -u root -P 端口号 -p

7.127.0.0.1或localhost(本机测试回环地址)
mysql -h 127.0.0.1
8.flush privileges:
(刷新缓冲区(设置了mysql相关配置之后,调用该命令就可以不需要重新启动mysql服务,使配置立即生效))
9.net start 服务名(例如:mysql80)(windows服务在管理员权限打开的cmd命令提示符里的启动服务命令)
net stop 服务名(例如:mysql80) :停止服务 net start 服务名(例如:mysql80) :启动服务 net restart 服务名(例如:mysql80) :重启服务
10.结构化查询语言:SQL(Structured Query Language)
|
名称 |
解释 |
命令举例 |
|
DML (数据操作语言) |
用来操作数据库中所包含的数据 |
INSERT UPDATE DELETE |
|
DDL (数据定义语言) |
用于创建和删除数据库对象等操作 |
CREATE DROP ALTER |
|
DQL (数据查询语言) |
用来对数据库中的数据进行查询 |
SELECT |
|
DCL (数据控制语言) |
用来控制数据库组件的存取许可、存取权限等 |
GRANT COMMIT ROLLBACK |
11.SQL中的运算符
一种符号,它是用来进行列间或者变量之间的比较和数学运算 包括算术运算符、赋值运算符、比较运算符、逻辑
|
运算符 |
说 明 |
|
+ |
加运算,求两个数或表达式相加的和,如6+8 |
|
- |
减运算,求两个数或表达式相减的差 |
|
* |
乘运算,求两个数或表达式相乘的积 |
|
/ |
除运算,求两个数或表达式相除的商,如5/3的值为1 |
|
% |
取模运算,求两个数或表达式相除的余数,如:5%3的值为2 |
赋值运算符:=
把一个数或变量或表达式赋值给另一变量,如:Name='王华'
逻辑运算符
|
运算符 |
说 明 |
|
AND |
当且仅当两个布尔表达式都为true时,返回TRUE。 |
|
OR |
当且仅当两个布尔表达式都为false,返回FALSE。 |
|
NOT |
布尔表达式的值取反 |
比较运算符
|
运算符 |
说 明 |
|
= |
等于,例如:age=23 |
|
> |
大于,例如:price>100 |
|
小于 | |
|
<> |
不等于 |
|
>= |
大于等于 |
|
小于等于 | |
|
!= |
不等于(非SQL-92标准 ) |
12.创建数据库
语法:
CREATE DATABASE 数据库名;
示例:
CREATE DATABASE myschool;

13.查看数据库列表
语法:
SHOW databases;

14.选择数据库
语法:
USE 数据库名;
示例:
USE mybase; USE myschool;

15.删除数据库
语法:
DROP DATABASE 数据库名;
示例:
DROP DATABASE myschool;

16.安装mysql压缩包版本
1..下载相关压缩包版本
2.编写my.ini配置文件好之后并保存到解压好的mysql文件夹里
3. 管理员启动CMD,输入安装windows服务命令:sc install 服务名(安装windows服务) net start 服务名
4.服务启动失败,自己找错误代码原因
5.删除:以管理员的身份启动cmd =>进入mysql 的 bin 路劲 => 输入mysqld --remove,添加成功之后执行net stop mysql 命令关闭mysql服务

17.MySQL数据类型
|
类型 |
说明 |
取值范围 |
存储需求 |
|
TINYINT |
非常小的数据 |
有符值: -27 ~ 27-1 无符号值:0 ~ 28-1 |
1字节 |
|
SMALLINT |
较小的数据 |
有符值: -215 ~ 215-1 无符号值: 0 ~ 216-1 |
2字节 |
|
MEDIUMINT |
中等大小的数据 |
有符值: -223 ~ 223-1 无符号值: 0 ~ 224-1 |
3字节 |
|
INT |
标准整数 |
有符值: -231 ~ 231-1 无符号值:0 ~ 232-1 |
4字节 |
|
BIGINT |
较大的整数 |
有符值: -263 ~263-1 无符号值:0 ~264-1 |
8字节 |
|
FLOAT |
单精度浮点数 |
±1.1754351e -38 |
4字节 |
|
DOUBLE |
双精度浮点数 |
±2.2250738585072014e -308 |
8字节 |
|
DECIMAL |
字符串形式的浮点数(用于涉及到金钱的计算,不会丢失精度) |
Decimal(M,D) |
M+2个字节 |
(1) UNSIGNED属性
标识为无符号数
示例:
CREATE TABLE `tb_type` ( `sid` INT(4) ZEROFILL); INSERT INTO `tb_type1` VALUE(12) ,(1234),(123456);
(2)ZEROFILL属性
宽度(位数)不足以0填充
(3)若某数值字段指定了ZEROFILL属性, 将自动添加UNSIGNED属性

18.字符串、日期类型
|
字符串类型 |
说明 |
长度 |
|
CHAR[(M)] |
定长字符串 |
M字节 |
|
VARCHAR[(M)] |
可变字符串 |
可变长度 |
|
TINYTEXT |
微型文本串 |
0~28–1字节 |
|
TEXT |
文本串 |
0~216–1字节 |
|
日期类型 |
格式 |
取值范围 |
|
DATE |
YYYY-MM-DD,日期格式 |
1000-01-01~ 9999-12-31 |
|
DATETIME |
YY-MM-DD hh:mm:ss: |
1000-01-01 00:00:00 ~9999-12-31 23:59:59 |
|
TIME |
hh:mm:ss: |
-835:59:59 ~ 838:59:59 |
|
TIMESTAMP(时间戳) |
YYYYMMDDHHMMSS |
1970年某时刻~2038年某时刻,精度为1秒 |
|
YEAR |
YYYY格式的年份 |
1901~2155 |
19.创建表
语法:
CREATE TABLE [IF NOT EXISTS] 表名 ( 字段1 数据类型 [字段属性|约束][索引][注释], …… 字段n 数据类型 [字段属性|约束][索引][注释] )[表类型][表字符集][注释];
示例:
#创建学生表 CREATE TABLE `student`( `studentNo` INT(4) PRIMARY KEY, ` name` CHAR(10), ……);
多字段使用逗号分隔
保留字用撇号括起来
单行注释:#...... 多行注释:/*……*/
20.字段的约束及属性
|
名称 |
关键字 |
说明 |
|
非空约束 |
NOT NULL |
字段不允许为空 |
|
默认约束 |
DEFAULT |
赋予某字段默认值 |
|
唯一约束 |
UNIQUE KEY(UK) |
设置字段的值是唯一的 允许为空,但只能有一个空值 |
|
主键约束 |
PRIMARY KEY(PK) |
设置该字段为表的主键 可唯一标识该表记录 |
|
外键约束 |
FOREIGN KEY(FK) |
用于在两表之间建立关系, 需要指定引用主表的哪一字段 |
|
自动增长 |
AUTO_INCREMENT |
设置该列为自增字段 默认每条自增1 通常用于设置主键 |
(1)主键
CREATE TABLE student( `studentNo` INT(4) PRIMARY KEY, ……);
(2.)注释
CREATE TABLE test ( `id` int(11) UNSIGNED COMMENT ‘编号’//注释此字段为编号字段 )COMMENT='测试表’ ;//注释此表为测试表
(3)设置字符集编码
CREATE TABLE [IF NOT EXISTS] 表名( #省略代码 )CHARSET = 字符集名;
21.创建学生表
/*如果表存在,先删除*/
DROP TABLE IF EXISTS `student`;
/*创建学生表*/
CREATE TABLE `student` (
`studentNo` int(4) primary key auto_increment comment '学号',
`loginPwd` varchar(20) not null comment '密码',
`studentName` varchar(50) not null comment '姓名',
`sex` char(2) not null default '男' comment '性别',
`gradeID` int(4) comment '年级表ID外键',
`phone` varchar(50) comment '电子邮箱',
`address` varchar(255) default '地址不详' comment '地址',
`bornDate` datetime,
`email` varchar(50) comment '电子邮箱',
`iddentityCard` varchar(18) unique key comment '身份证号'
);
22.查看表(避免DOS窗口乱码,可执行SET NAMES gbk;)
(1)查看表是否存在
示例:
USE myschool; SHOW tables;
(2)查看表定义
DESCRIBE 表名; 或 DESC 表名;
示例:
USE myschool; DESCRIBE `student`;
23.删除表(在删除表之前,先使用IF EXISTS语句验证表是否存在 )
语法:
DROP TABLE [IF EXISTS] 表名;
示例:
USE myschool; DROP TABLE IF EXISTS `student`;
24.修改表(重点)
#修改表名 ALTER TABLE 旧表名 RENAME [TO] 新表名; #添加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [属性]; #修改字段 ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性]; #删除字段 ALTER TABLE 表名 DROP 字段名;
25.添加主键
语法一:(后期想要设置字段为主键的添加方法,原来不存在)
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);
示例:设置grade表中gradeID字段为主键
ALTER TABLE `grade` ADD CONSTRAINT `pk_grade` PRIMARY KEY `grade`(`gradeId`);
语法二:(建表时就直接添加的方法)
`id` int(4) primary key auto_increment comment '年级编号',
26.添加外键
语法:
ALTER TABLE 从表表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 主表表名(关联字段);
示例:将student表的gradeID字段和grade表的gradeID字段建立外键关联
ALTER TABLE `student` ADD CONSTRAINT fk_student_grade FOREIGN KEY(`gradeId`) REFERENCES `grade` (`gradeId`);
27.MySQL系统帮助
语法:
HELP 查询内容;
示例:
HELP contents; HELP Data Types; HELP INT;
28.总结

本文介绍了数据库和应用程序的作用与要求,列举了时下流行的数据库,重点阐述了MySQL的优势。详细讲解了数据库的基本概念、管理系统,以及连接、操作MySQL数据库的步骤,包括创建、查看、删除数据库和表,设置字段约束等,还提及了SQL运算符和MySQL系统帮助。
1300

被折叠的 条评论
为什么被折叠?



