mysql入门

1、启动服务

net stop mysql

net start mysql

2、配置mysql.ini:

port默认为3306

编码:

	client:default-character-set=gbk
	mysqld:character-set-server=utf-8

数据的大小:

	mysqld:max-allowed-packet=8M

登录:
	mysql -uroot -p123456 -hlocalhost

退出:

	exit\quit

3、sql语言

DDL:数据定义,表、库创建修改删除

DML:数据操作,增删改查

DCL:数据控制,权限与级别

DQL: 查询

4、DDL数据定义语言:表库的创建、修改、删除

show databases;

use dbname;

create database if not exist mydb charset=utf-8;

drop database if exist mydb;

alter database mydb character set utf-8;

5、数据类型

bigint

double(5,2):五位数,2为小数

decimal:

varchar:单独一个字节存长度

text:字符串

blob:字节类型(二进制)

date->yyyy-mm-dd->java.sql.Date

time:hh:mm:ss

timestamp:时间戳

6、表操作

create table if not exist mytbl();

show tables;

show create table mytbl;

desc table mytbl;

drop table mytbl;

7、修改表

添加列:

	alter table mytbl add(name1 type1,name2 type2)

修改列类型:

	alter table mytbl modify name type;

修改列名:

	alter table mytbl change oldname newname type;

删除列:

	alter table mytbl drop name;

修改表名称:

	alter table oldname rename to newname

8、DML数据操作

insert into mytbl(name1,name2)values(value1,value2)

insert into mytbl values(全字段)

update mytbl set name=value;

delete from mytbl where ..; 

truncate table mytbl:先drop表再创建表

9、DCL权限

创建用户:
	create user username@ip/localhost identified by 'pwd';

	create user username@'%' identified by 'pwd';

用户授权:

	grant 权限 on dbname.* to username@ip

	grant all on dbname.* to suername@ip

撤销权限:

	revoke 权限 on dbname.* from username@ip

查看权限:

	show grants for username@ip

删除用户:

	drop user username@ip

10、DQL查询

select sal*2 from emp;

select concat("我",name);

11、主键\外键设置

alter table mytbl add primary key(sid);

alter table mytbl drop primary key;

auto_increment\not null\unique

constraint fk_emp_dept foreign key(did) references dept(id);

12、多表关联查询

* 合并结果

	select * from a
	union all
	select * from b;

* 连接查询

	内连接:

		select * from tb1,tb2 where tb1.name=tb2.name;方言

		select * from tbl inner join tb2 on tb1.name=tb2.name;标准

		select * from tbl natural join tb2;自然连接

	外连接:主表都打印,副表满足条件打印
			左外、右外、全外

		select * from tb1 left outer join tb2 on tb1.name=tb2.name;

	子查询:
		位置:
			where后作为条件
			from 作为表存在

* 类型:根据结果划分

	单行单行、单列多行

13、preparedStatement:

校验sql、编译、执行

14、date

java.util.Date:sql.Date的父类,

java.sql.Date:

	java.util.Date d=new java.util.Date();
	long l=d.getTime();
	sql.Date date=new java.sql.Date(l);

15、事务

start transaction
commit
rollback

con.setAutoCommit(false);
con.commit();
con.rollback();

16、隔离级别

串行化:最高

可重复读:防止脏读、不可重复读

读已提交:

读未提交:

17、并发

脏读:读取到另一个事务未提交的数据

不可重复读:2次读取的不一致,另一个事务修改

幻读:2次查询不一致,插入新记录

18、ThreadLocal:

存储每个线程的副本

多线程互不干扰

19、表约束:

	主键
	唯一键
外键:
    作用:
	维护关联表字段的一致性
	消耗DB资源
	内部加锁导致死锁
外键存在:
	用户并发量大,并发度高,不易水平扩展
	一致性放到事务中,服务器承担压力
	减小数据库的压力,不用外键保持一致性
主键:

	逻辑主键:无意义的id,如uuid、自增、GUID
	业务主键:唯一性的字段作为主键
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值