基础笔记

来源:互联网 发布:如何开淘宝 编辑:程序博客网 时间:2024/05/29 06:45
命令; 结束或者\g结束
默认建表一般用utf8,windows窗口是GBK,生命字符集 set names gbk
复制表 create table 新表名称 like 源表名称;




mysql -h 主机地址 -u用户名 -p密码
mysql -h192.168.188.10 -uroot -p123 (可不加空格)


mysqladmin -u用户名 -p旧密码 password 新密码
mysqladmin -uroot -p123 password 345


grant select on .* to 用户名@登录主机 identified by “密码”
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
grant select,insert,update,delete on mydb.* to test2@localhost indentified by "abc";


show databases;  查看数据库列表
use mysql;
show tables;
describe 表明, ++显示数据表结构
create databases 库名;
use 库名;create table 表名();++建表
drop databases 库名;
drop table 表明;
delete from 表明; ++表记录清空
select * from 表明;显示表中记录


drop database if exists school;++如果存在school则删除
create database school ;建库school
use school; 
create table teacher; ++建立表teacher
(id int(3) auto_increment not null primary key,name char(10) not null,address varchar(50) default '深圳',year date);   ++建表结束
insert into teacher values('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1984-12-23');


insert into emp ...
update emp set ..
delete from emp ...
select * from emp where ..
==================
DDL (Data Definition Languages) 数据定义语言
DML(Data Manipulation Language) 数据操作语句
DCL(Data Control Language) 数据控制语句


DDL 对数据库内部的对象进行创建,删除,修改
create database dbname 创建数据库
create database test1;
use dbname(数据库) 选择操作的数据库
use test1 ;   show tables; 查看test1数据库数据表
drop database dbname; 删除数据库


create table tablename(表名) (column_name_1 column_type_1 constraints,... column_name_n column_type_n constraints,) 
column_name_1 列名    column_type_1 列的数据类型  constraints这个列的结束条件
create table emp (ename varchar(10), hiredate date , sal decimal(10,2) , deptno int(2));
desc tablename (查看表的定义)
show create table emp (查看更全面的表定义信息)


drop table tablename  删除表
drop table emp


修改表类型,语法
alter table tablename modify[column] column_definition [first | after col_name ]
修改表em[的ename字段
alter table emp modify ename varchar(20)
增加表字段,语法
alter table tablename add [column] column_definition [ first | after col_name]
emp 新增加字段age 类型ini(2)
alter table emp add [column]  age int(2)
删除表字段,语法
alter table tablename drop [column] col_name
删除age字段
alter table emp drop column age
字段改名,语法
alter table tablename change [column] old_col_name column_definition[first | after col_name]
age改名age1,同时修改字段类型为int(4)
alter table emp change age age1 int(4)
-----change 和modify 都可以修改表定义


修改字段排列顺序
[first | after col_name] 可选项 修改表中字段位置
alter table emp add birth date after ename;
alter table emp modify age int(3) first;


修改表名,语法
alter table tablename rename [to] new_tablename
alter table emp rename emp1;
rename table emp to emp1;


DML 对数据库中表记录操作,包括insert update delete select 


insert into tablename (field1,field2,...) values(value1,value2,......);  插入
insert into emp (ename,hirsdate,sal,deptno) values('zzxl','2000-10-10','2000',1);
可以不指定字段名,values后面顺序应该和字段排列顺序一致;
insert into emp values('zzxl','2000-10-10','2000',1);
insert into emp (ename,sal) values('dony',1000);  ++只对表中某些字段显示插入


++select * from emp;   ++查看查询插入值;
插入多条记录,每条记录都用逗号分隔
insert into emp (field1,...) values(value1,value2,......),(value1,value2,......),....;
insert into emp values(5,'emp1'),(6,'emp2');  表emp插入两条记录


更新记录 update
update tablename set field1=value1,...fieldn=valuen [where condition]
update emp set sal=4000 where ename='lisa';
同时更新多个表中的数据
update t1,t2,...tn set t1.field1=expr1,tn.fieldn=exprn [where condition]
update emp a,dept b set a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;


删除记录 +++不加where条件,会删除所有表记录+++
delete from tablename [where condition]
delete from emp where ename='dony';  ++删除全部ename为dony的记录
delete t1,t2...tn from t1,t2..tn [where condition]
delete a,b from emp a,dept b where a.deptno=b.deptno  and a.deptno=3;


查询记录
select * from tanlename [where condition]
select * from emp ;  查询所有
select ename,hiredate,sal from emp;  查询某些字段
select distinct deptno from emp;  去掉重复后,关键字distinct;
++条件查询+where+
select * from emp where deptno=1;  还可以使用>,<,<=,>=,or,and等逻辑
select * from emp where deptno=1 and sal<3000;


排序和限制 desc 降序  ASC升序
select * from tablename [where condition] [order by dield1 [desc | asc ],field2[desc | asc],..fieldn[desc | asc ]];
select * from emp order by sal;  ++ sal排序
select * from emp order by deptno,sal desc;  


select ....[LIMIT offset_start,row_count ]    offset_start起始偏移量,row_count 显示的行数。
select * from order by sal limit 3;  ++显示emp表按sal排序后前3条记录;
select * from order by sal limit 1,3;  ++sal排序后第二条记录,显示3条;
+++
#in (值1,值2,,,,值n) 等于其中任意一个都行
select * from emp where cat_id in (4,5);
#between 值1 and 值2,表示在值1和值2之间
select * from emp where name between 2000 and 3000;
selcet * from emp where zhi >=3000 and zhi <=5000 or zhi >=400 and zhi <=800;
#not 用法,不属于
select * from emp where id !=4 and id !=5;
#not in 
select * from emp where id not in (4.5);
+++
模糊查询  like
% -->通配任意字符
'_'  -->单个字符
select * from emp where name like '诺基亚%';
++聚合++


+++整数型++++
unsignes(非负) 无符号类型
zerofill (0填充,默认无符号)
M:宽度 int(M) (0填充才有意义)
+++小数型+++
float(M,D)  ++M总位,D小数位
++++++++++++++++++++++
列声明默认值 not null default 0 











原创粉丝点击