MySQL的知识
MySQL的安装与navicat的安装
MySQL的运用
终端操作登录数据库
1.环境设置:
- 设置MySQL的bin文件的环境变量。
- 添加至用户环境变量的path一栏。
2.用户登录及服务启动停止: - win+r 输入cmd 点确定。
- 输入mysql -uroot(自己的用户名) -p(密码) {不安全,可见密码)或者输入mysql -uroot(自己的用户名) -p 点回车再输入密码 或者打开mysql command line client(注意:只能用root登录) ,直接输入密码
- 启动mysql的服务,直接打开任务管理器-服务-MySQL的启动与停止或者以管理员的身份打开cmd 输入net start MySQL/ net stop MySQL
MySQL的使用:
1.表的知识点:
1 表(table):是一种结构性文件,表中有行和列、主键的概念。
2.列叫字段,具有字段名称、字段数据类型、字段约束、字段长度
3.行有表中的记录。
4.主键由列构成,有多个或单个字段构成,通常不能修改。
2.sql的分类:
1. 数据查询语言(DQL),代表字:select
2. 数据操作语言(DML),代表字:inset、delete、update
3. 数据定义语言(DDL),代表字:create、drop、alter
4. 事务控制语言(TCL),代表字:commit、rollback
5. 数据控制语言(DCL),代表字:grand 、revoke
编程语言中操作数据库:
可视化操作数据库:
navicat基本知识:
- 主键:数据行的唯一标识,不能重复的列才可以充当。业务主键(易重复)和逻辑主键(防止重复)
- 外键:关联多张表。
建表:
- 点击新建数据库,用UTF-8编码
- 在数据库的目录的表下新建表,id不能为空,Name不能为空,Gender不能为空,
- 列表/表名不要关键字,不要空格,不要特殊符号。表名一般T_名字跟s
- 存储引擎:MyISAM效率高,不支持事务和外键,建议InnoDB,点击项对象信息可看引擎(建表时可以在选项中选择引擎)。
- 名那里写主键(一般写ID)
- varchar,可变的字符串
- 每一栏就是一个总数据的名字(比如姓名)
- 创建表后直接双击输入相应的数据。
数据类型:
- 整型:tinyint:
- 文本:
- 小数:
- 日期和时间:
- 二进制数据:
SQL语句:
基本知识:
- 字符串用单引号
- 大小写不敏感
- Navicat找到SQL语句的地方“查询‘–新建查询,编写SQL语句然后执行
创建表格:
create table goods(
id int primary key auto_increment,
name varchar(25)
);
查询语句:
- select * from 表名 查询一个表全部的数据
- insert into 表名(响应的数据名字用“ ,”隔开)values(对应的数据具体值用“ ,”隔开)
- 自动值增长,在设计表中选中表的栏名选中自动递增。
- 在修改表的格式时其表的旧数据也要合法。
更新语句:
- update
语法:updat 表名 set 栏名 = 值这一栏名数据都是这个值
条件语句更新语句:
- where
表达式 where 条件
select * from T_students where name = '张二猪'
update T_students set hobbies= 'java' where name= '张二猪'
逻辑词:not ,or,and,<=,>=,<,>,!=(或<>)
- 等于是单个=
- not 取反
- and是与
- or是或者
- 其他相似与编程语言
删除语句:
- delete
语法:delete from 表名 删除所所有数据,表还在。 - drop
语法:drop table 表名
数据检索语句:
select语句:
-
select
语法:select 数据名,数据名2,… from 表名 只列出相应需要的数据。 -
语法:select 数据名 as 自定义的名字,数据名2 as 自定义的名字2 ,…from 表名 只列出相应需要的数据并把相应的数据名改成自己定义的名字。(其as可以省略)
下面展示一些内联代码片
。 -
与where一起用
// A code block
select name,hobbies from T_students
select name as 姓名,hobbies as 爱好 from T_students
// An highlighted block
select name,hobbies from T_students
select name as 姓名,hobbies as 爱好 from T_students
数据汇总:
-
max,min
select max(数据名),min(数据名),… from 表名 -
count个数
select count(数据名或 * ) from 表名 -
sum和avg
select sum(数据名),avg(数据名)… from 表名
数据排序:
-
order by 子句位于select语句后面,允许安照指定一个列或者多个列以(升序asc或者降序desc)来排列。
-
order by 子句位于where语句后面。
通配符过滤:
- 单字符匹配的通配符为 _,匹配单个出现的字符。
通配符 | 描述 |
---|---|
% | 替代一个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列开头中的任何单一字符 |
[^charlist]或者[!charlist] | 不在字符列开头中的任何单一字 |
-
SELECT * FROM 表名 WHERE 数据名 LIKE '匹配类型’
-
特殊的:
SELECT * FROM Persons WHERE City LIKE ‘[ALN]%’
这种语法在MySQL中不适用,必须以正则表达式代替,正确语句如下
SELECT * FROM Persons WHERE City RLIKE ’ ^ [ALN]%'
regexp或者rlike关键字均可
SELECT * FROM Persons WHERE City RLIKE ’ ^ [ ^ ALN]%’ 非aln开头。 -
如果需要区分大小写,使用binary 关键字
MySQL NULL 值处理:
-
IS NULL: 当列的值是 NULL,此运算符返回 true。
-
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
-
<=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。
limit:
-
limit 开始数据,数据条数 数据分页。
-
一定要放在最后。
group by :
-
数据分组,放在where语句之后。
-
select * from 表名 group by 数据名
多表连接:
join:
- INNER JOIN INNER JOIN(内连接)
SELECT 表名.数据名1, 表名.数据名2, 表名1.数据名3 FROM 表名
INNER JOIN 连接的其他表
ON 表名.数据名 = 其他表名.数据名
-
JOIN: 如果表中有至少一个匹配,则返回行
-
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
-
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
-
FULL JOIN: 只要其中一个表中存在匹配,就返回行
-
表连接时分析哪一部份是相同的。在进行连接,可以连用join连接多张表。