mysql|Msql基础-基础sql语句使用

mysql基本命令
1.关闭mysql
net stop msyql

2.开启mysql
net start mysql

3.登陆mysql
mysql -uroot -p123123

4.退出mysql
exit\quit


sql语句分类
sql语句主要可分为以下3类:
DDL(data definition languages)语句:
数据定义语言,定义了不同的数据段\数据库\表\列\索引等数据库对象.
常用语句包括create\drop\alter等.

使用:
1.创建数据库
CREATE DATABASE dbname
例子:create database test1;

2.查看数据库
show databases

3.使用数据库
USE dbname

4.删除数据库
drop database dbname

5.创建表
1>简单的
create table tablename(
id int not null,
name char(30)
);
2>带主键的
create table tbname(
in int not null primary key,
name char(20)
);
3>复合主键
create table tbname(
id int not null,
name char(20),
primary key(id,name)
);
4>带默认值
create table tbname(
id int not null default 0 primary key,
name char(30) default '1'
);
5>完整例子
CREATE TABLE `user_t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(40) NOT NULL,
`password` varchar(255) NOT NULL,
`age` int(4) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
备注:
ENGINE=InnoDB使用innodb存储引擎
DEFAULT CHARSET=utf8 数据库默认编码为utf-8
AUTO_INCREMENT=1 自增键的起始序号为1
【mysql|Msql基础-基础sql语句使用】
6.查看表
1>desc tbname;
2>show create table tbname \G; 更详细表信息

7.删除表
drop table tbname;

8.修改表

1>修改表字段类型
alter table tbname modify[colunm] colunm_definition[first|after col_name]
例如:
修改表test的ename字段定义,将varchar(10)改为varchar(20)
alter table test modify ename varchar(20);

2>字段改名
alter table tbname change[colunm] old_col_name column_definition [first|after col_name]
将age改名为age1,同时修改字段类型为int(4)
alter table test change age age1 int(4);
alter table test change age age int(4); //只修改属性

3>增加表字段
alter table tbname add[column] column_definition [first|after col_name]
例如:
alter table test add column age int(3);

4>删除表字段
alter table tbname drop[column] col_name;
例如:
alter table test drop column age;

5.修改字段排序
字段的添加和修改语法(add\change\modify)都有一个选项first|after colname用来修改字段在表中的位置,add新加的在最后,而修改默认不会改变字段位置
例子:
alter table test add firth date after ename;
alter table test modify age int(3) first;

6.修改表名字
alter table tbname rename[to] new_tbname
例子:
alter table test rename test2;




DML(data manipulation language)语句:
数据操纵语句,用于添加\删除\更新和查询数据库记录,并检查数据完整性.
常用语句insert\delete\update和select.
1.插入记录
1>插入一条
insert into tbname(field1,field2...) values(val1,val2...);
例子:
inset into test(ename,info) values('小白',2);
2>插入多条
insert into tbname(field1,field2...)
values
(val1,val2...),
(val1,val2...),
......
(val1,val2...);
备注:
val的顺序和字段的排序一致
含可空字段\非空但是含有默认值的字段\自增字段,可以不用在insert后的字段列表中出现

2.更新记录
1>更新一个表中的数据
update tbname set field1=value1,field2=val2,... [where condition]
例子:
将表test中的ename为"lisa"的薪资(sal) 从2000改为4000
update test set sal=4000 where ename='lisa';
2>更新多个表中的数据
update tb1,tb2...tbn set tb1.field1=value1,tb2.field1=value1... [where condition]
例子:
更新test中的字段sal和表dept中的字段deptname
update test a,dept b
set
a.sal=a.sal*b.deptno,
b.deptname=a.ename
where
a.deptno=b.deptno;
备注:
多表更新的用法更多的用在了根据一个表的字段来动态的更新另一个表的字段

3.删除记录
1>删除一个表中的记录
delete from tbname [where condition]
例子:
delete from test where ename='xiaobai';
2>删除多个表的记录
delete tb1,tb2..tbn from tb1,tb2..tbn [where condition]
例子:
同时删除表emp和dept中的deptno为3的记录
delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;
备注:
如果from后面的表名用别名,则delete后面也要用相应的别名,否则会提示语法错误.

4.查询记录
select * from tbname [where condition]
例子:
select * from test where deptno=1;
备注:
"*"把所有的字段都显示出来,也可以用逗号分割选择显示
详细的查询语句会单独介绍


DCL(data control language)语句:
数据控制语句,用于控制不同数据段直接的许可和访问的级别语句,这些语句定义了数据库\表\字段\用户的访问权限和安全级别.
主要的语句包括grant\revoke等.
备注:开发者一般用不到

    推荐阅读