mysql学习(1)----------基础语法
进入mysql
mysql -u用户名 -p密码
初始用户为root 初始密码为空
status;
查看当前用户,以及数据库的字符集和其他参数的设置
set db characterset=uff-8;
设置字符集为utf-8;
/*
utf-8为国际通用的编码
gb23123,gbk为国标码
*/
对数据库操作
当前拥有的所有数据库
show databases;
创建数据库
create database 数据库名
删除数据库
drop database 数据库名
对表操作
创建表
当前拥有的所有数据库
create table 表名(
字段名,数据类型(长度),约束
字段名 ,数据类型(长度),约束
)GINE=harset=utf8;
//指定搜索引擎和字符集
/*
常用数据类型:
int
varcahr (长度) 可变字符长度
text 文本字节
decimail(M,D) M:数据位数 D:数据精度 专门用来处理财务的数据类型
data 日期(YY-MM-DD)
datatime 日期加时间 YYYY-MM-DD HH:MM:SS
约束:
primykey 主键
primykey auto_increment 自增主键
not null 不空
unique 唯一
*/
创建临时表
/*
临时在连接断开时自动删除
create tmporary table(
字段名,数据类型
字段名 ,数据类型
);
方法二:
直接复制
create tmporary table tablea select * from tableb;
删除表
drop table 表名
增加表的某个字段
alter table 表名 add 字段名 字段的数据类型 //默认最后
- 新增列放在第一列
alter table 表名 add 字段名 数据类型 约束 first
- 新增列放在列A之后
alter table 表名 add 字段名 数据类型 约束 alter a
修改表字段的数据类型:
alter table 表名 alter 字段名 数据类型
删除表的某个字段
alter table 表名 drop 字段名
对字段操作
/*
-
DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
-
ALL: 可选,返回所有结果集,包含重复数据
- AND,OR:用于where条件的连接,分别表示 且,或的意思
*/
查询
select *(字段名,字段名,字段名........) from 表名 where 条件;
嵌套查询
select * from 表名 where in(select 字段名 from 表名;
联接表名查询
内连接:
select * from 表名 join 表名 on 条件;
== select * from 表名 inner join 表名 on 条件;
==select * from 表名 cross join 表名 on 条件;
外连接:
左连接
select * from 表名 left join 表名 on 条件
模糊查询:
右连接:
select * from 表名 right join 表名 on 条件;
模糊查询:
合并查询:
select * from 表名 union [DISTINCT | ALL] select * from 表名
模糊查询:
select * from 表名 where 字段 like %查询的字符%;
插入数据
insert into 表名 values("值","值","值")
插入的值要与每一元组(即行)的字段的属性对应
修改数据:
update 表名a set a.b=值 where a.id=1 or a.id=2;
删除数据:
delete from 表名 where 条件