mysql服务的命令行启动与关闭
启动mysql服务
net start mysql57
停止mysql服务
net stop mysql57
连接mysql
mysql -uroot -p123456
mysql -uroot -p
后输入密码
退出命令 exit或quit
连接服务器的mysql
mysql -h127.0.01 -uroot -p123456
目录结构
- bin 放置一些可执行文件
- docs 文档
- include 包含(头)文件
- lib 依赖库
- share 用于存放字符集、语言等信息
1) 什么是SQL ?
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库
查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
2) SQL 的作用
- 是所有关系型数据库的统一查询规范,
- 不同的关系型数据库都支持SQL
- 所有的关系型数据库都可以使用SQL
- 不同数据库之间的SQL 有一些区别 方言
sql的通用语法
- SQL语句可以单行 或者 多行书写,以分号 结尾 ; (Sqlyog中可以不用写分号)
- 可以使用空格和缩进来增加语句的可读性。
- MySql中使用SQL不区分大小写,一般关键字大写,数据库名 表名列名 小写。
- 注释方式
–空格 单行注释 /**/多行注释 # mysql特有的单行注释
sql的分类
- 数据定义语言简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。
- 数据操作语言简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。
- 数据查询语言简称DQL(Data Query Language),用来查询数据库中表的记录。
- 数据控制语言简称DCL(Date Control Language),用来定义数据库的访问权限和安全级别,及创建用户。(了解)
DDL操作数据库
#####创建数据库 ######
create database 数据库名; 创建指定名称的数据库。
create database 数据库名 character set
字符集;
创建指定名称的数据库,并且指定字符集(一般都
指定utf-8)
#####查看/选择数据库 ####
use 数据库名; 切换数据库
select database(); 查看当前正在使用的数据库
show databases; 查看Mysql中 都有哪些数据库
show create database 数据库名; 查看一个数据库的定义信息
#####修改数据库 ####
alter database 数据库名 character set 字符集; 数据库的字符集修改操作
#####删除数据库 ####
drop database 数据库名; 从MySql中永久的删除某个数据库
DDL操作数据标
#####Mysql常见的数据类型 ####
注意:MySQL中的 char类型与 varchar类型,都对应了 Java中的字符串类型,区别在于:
char类型是固定长度的: 根据定义的字符串长度分配足够的空间。
varchar类型是可变长度的: 只使用字符串长度所需的空间
#####创建表 ####
CREATE TABLE 表名(
字段名称1 字段类型(长度),
字段名称2 字段类型 注意 最后一列不要加逗号
);
快速创建一个表结构相同的表(复制表结构)
create table 新表明 like 旧表名
#####查看表 ####
-- 查看当前数据库中的所有表名
SHOW TABLES;
-- 显示当前数据表的结构
DESC category;
-- 查看创建表的SQL语句
SHOW CREATE TABLE category;
#####删除表 ####
-- 直接删除 test1 表
DROP TABLE test1;
-- 先判断 再删除test2表
DROP TABLE IF EXISTS test2;
#####修改表 ####
-
修改表名
rename table 旧表名 to 新表名
-
修改表的字符集
alter table 表名 character set 字符集
-
向表中添加列
alert table 表名 add 字段名称 字段类型
-
修改表中列的 数据类型或长度,关键字 MODIFY
lter table 表名 modify 字段名称 字段类型
-
修改列名称 , 关键字 CHANGE
alter table 表名 change 旧列名 新列名 类型(长度);
-
删除列 ,关键字 DROP
alter table 表名 drop 列名;
DML操作表中数据
插入数据
insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);
#####注意 ####
- 值与字段必须要对应,个数相同&数据类型相同
- 值的数据大小,必须在字段指定的长度范围内
- varchar char date类型的值必须使用单引号,或者双引号 包裹。
- 如果要插入空值,可以忽略不写,或者插入null
- 如果插入指定字段的值,必须要上写列名
修改数据
语法格式1:不带条件的修改(慎用!!)
update 表名 set 列名 = 值;
语法格式2:带条件的修改
update 表名 set 列名 = 值 where 条件表达式:字段名 = 值 ;
删除数据
语法格式1:删除所有数据
-
delete from 表名; 不推荐. 有多少条记录 就执行多少次删除操作. 效率低
delete from 表名;
-
truncate table 表名: 推荐. 先删除整张表, 然后再重新创建一张一模一样的表. 效率高
truncate table student;
语法格式2: 指定条件 删除数据
delete from 表名 where 字段名 = 值;
DQL查询表中数据
简单查询
查询不会对数据库中的数据进行修改.只是一种显示数据的方式 SELECT
select 列名 from 表名
- 别名查询,使用关键字 as
- 使用去重关键字 distinct
- 运算查询 (查询结果参与运算)
####条件查询 ####
如果查询语句中没有设置条件,就会查询所有的行信息,在实际应用中,一定要指定查询条件,对记录进行过滤
select 列名 from 表名 where 条件表达式
* 先取出表中的每条数据,满足条件的数据就返回,不满足的就过滤掉
- 比较运算符
< > <= >= = <> != 大于、小于、大于(小于)等于、不等于
BETWEEN …AND… 显示在某一区间的值
例如: 2000-10000之间: Between 2000 and 10000
IN(集合)集合表示多个值,使用逗号分隔,例如: name in (悟空,八戒)
in中的每个数据都会作为一次条件,只要满足条件就会显示
LIKE ‘%张%’ 模糊查询
IS NULL 查询某一列为NULL的值, 注: 不能写 = NULL
- 逻辑运算符
And && 多个条件同时成立
Or || 多个条件任一成立
Not 不成立,取反。
- 通配符
% 表示匹配任意多个字符串,
_ 表示匹配 一个字符