链接Mysql
以管理员身份启动命令行窗口
启动mysql 命令:net start mysql
链接到Mysql的指令:mysql -h 主机ip地址 -P 端口 -u 用户名 -p密码
-p后面不要空格
-p后面没写密码回车会要求输入密码
如果没写-h 主机,默认就是本机
如果没写-P 端口,默认就是3306
MySQL基本结构
数据库在本地的位置在data文件夹中,表的本质就是文件。
表的一行称之为一条记录,在Java程序中,一条记录往往用一个对象来对应。
SQL语句的分类
DDL:数据定义语句
DML:数据操作语句[增加,修改,删除]
DQL:数据查询语句[select]
DCL:数据控制语句[管理数据库,如用户权限]
创建数据库
CHARAXTER SET :指定数据库采用的字符集,默认utf-8
COLLATE :指定字符集的校对规则
查看,删除数据库
显示所有数据库:SHOW DATABASES
显示数据库创建语句:SHOW CREATE DATABASE db_name
删除数据库(慎用):DROP DATABASE[IF EXISTS] db_name
备份和恢复数据库
备份数据库(要在DOS下执行)
mysqldump -u 用户名 -p 密码 -B 数据库1 数据库2...数据库n > 路径.文件名.sql
备份表(要在DOS下执行)
mysqldump -u 用户名 -p 密码 数据库 表1 表2 ... > 路径.文件名.sql
恢复数据库(进入mysql命令行再执行)
Source 路径.文件名.sql
创建表
mysql常用数据类型(列类型)
特别说明DECIMAL[M,D]:可以支持更加精确的小数位。M表示总位数,D是小数点后位数,如果D是0则没有小数点后位数,M最大65,D最大30,D默认0,M默认10。
CHAR是固定长度的字符串,VARCHAR是根据数据实际长度分配内存的字符串,但是CHAR查询效率高于VARCHAR
char(4)//这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算.
varchar(4)//这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据.
不管是 中文还是英文字母,都是最多存放4个,是按照字符来存放。
修改表
使用ALTER TABLE语句追加,修改或删除表
column 表示列明,DEFAULT 表示默认值 exper是表达式
修改表名:Rename table 表名 to 新表名;
修改表字符集:alter table 表名 character set 字符集;
修改列名:alter table 表名 change 表名 新列名 datatype() not null deffault' ';
not null 表示该列不能为空,默认值是一个空格。
CRUD
INSERT插入语句
在value中列出的数据位置必须与被加入的列的排列位置相对应
字符和日期型数据应包含在单引号中
列可以插入空值前提是该字段允许为空
inser into tab name(列名....)values(),(),()形式添加多条数据
如果是给表中所有字段添加数据可以不写前面的字段名称即列名
当不给某字段值时如果有默认值就会自动添加,无默认值且没写not null则会默认null,否则报错
update修改语句
where子句指定修改哪些行如where name = ‘张三’,如果没有带where语句会修改所有记录!
在where子句中经常使用到的运算符有
‘name’ like ‘张%’ 表示模糊查询,只要是以张开头的全都查询
delete删除语句
where语句用法同update语句
select查询语句
columun指定列名
*代表查询所有列
from指定查询哪张表
distinct关键字可选填,如果写表示在显示结果是去除重复的数据
可对查询到的数据进行运算比如SELECT 'name’ ,(chinese + english + math)FROM student
表示查询sudent表中所有学生成绩总和
还可以使用AS表达式取别名
SELECT 'name’ ,(chinese + english + math)AS totalscore FROM student 表示将查询到的成绩总和取个别名叫totalscore
可以使用order by子句对查询结果进行排序
Order by 指定排序的列,排序的列既可以是表中的列名,也可以是selec语句后指定的列名。
Asc 升序[默认]、Desc 降序
ORDER BY 子句应位于SELECT语句的结尾
统计函数count
count返回行的总数,还可以加where限定
SELECT COUNT(*) FROM student 表示返回student表所有行的个数
SELECT COUNT(*) FROM student WHERE math > 90表示返回student表中math值大于90的行数
count(*)返回满足条件的记录的行数
count(列)统计满足条件的某列有多少个,但是会排除为null的情况
求和函数sum
sum函数返回满足where条件的所有行相应列上值的和,一般用在数值列
求平均函数avg
最大最小值函数
分组过滤函数
字符串相关函数
实例:以首字母小写的方式显示所有tab01员工表的姓名
SELECT CONCAT(LCASE(LEFT(NAME,1)),SUBSTRING(NAME,2)) FROM tab01;