MySQL的常用命令

来源:互联网 发布:windows dns配置文件 编辑:程序博客网 时间:2024/06/15 08:51
停止mysql服务(以管理员身份启动cmd)
net stop mysql
启动mysql服务
net start mysql
启动mysql
cmd->mysql -u root -p123456 连接本机
cmd->mysql -h 192.168.46.254 -uroot -p123456 连接指定主机
查看所有的数据库实例
show databases;
查看当前用户
select user();
使用数据库
use test


MySQL命令
退出mysql命令行:quit、\q、exit
取消正在编写的命令:\c、clear
修改结束分隔符:delimiter 分隔符号
显示当前正在输入的命令:\p


mysqladmin命令
在命令行中创建数据库实例
cmd->mysqladmin -uroot -p123456 create oa
在命令行中删除数据库实例
cmd->mysqladmin -uroot -p123456 drop oa
修改当前用户密码(前提是知道原始密码)
cmd->mysqladmin -uroot -p password 'newpassword'


mysqldump命令
备份指定数据库实例
mysqldump -uroot -p123456 hellomrchai > d:\hellomrchai.sql
备份指定数据库实例中的指定表
mysqldump -uroot -p123456 test user > c:\user.sql


恢复(导入)数据
进入到指定的数据库实例
source *.sql文件所在路径


SQL != 数据库
SQL:Structured Query Language结构化查询语言,一门独立于数据库的操作命令,任何关系型数据库几乎都支持sql,
在不同的数据库管理系统(DBMS)存在细微差异
SQL分类
1.DDL数据定义语句(create,drop,alter...)
2.DML数据操作语句(insert,update,delete,select 增删改查)
3.DCL数据控制语句(grant,revoke)


创建一个人事管理系统的数据库:OA
1.创建数据库实例
create database oa
2.使用数据库实例
use oa
3.创建数据表(员工表:工号,姓名,性别,职位,月薪)
create table emp
(
eno int,
ename varchar(32),
sex char(8),
ob varchar(16),
sal float
);


建表语法结构
create table 表名称
(
列名称 列类型
...

4.删除表中的指定列(前提是表中列没有数据)
alter table emp drop sex;
5.向表中新增一个列
alter table emp add dept varchar(16);
6.修改表中指定列的类型(前提是表中列没有数据)
alter table emp modify sal double;
7.删除表
drop table emp;
8.修改表中列名称
alter table emp change deptno dno int;
9.修改表名称
alter table emp rename to employee;


任务:
创建两张表
1.员工表(
工号:int, 主键 自动增长
姓名:varchar, 不为空
职位:varchar, 不为空 默认值'普通员工'
手机号:varchar, 不为空 check(len(phone)=11)
月薪:float,
部门编号:int foreign key references dept(dno)
)
2.部门表(
部门编号:int, 主键 自动增长
部门名称:varchar, not null unique
部门分机号:varchar not null unique
)


create table dept
(
dno int auto_increment,
dname varchar(32) not null unique,
tel varchar(16) not null unique,
primary key(dno)
)


create table emp
(
eno int primary key auto_increment,
ename varchar(32) not null,
job varchar(32) not null default '普通员工',
phone varchar(11) check(len(phone)=11),
sal float,
dno int references dept(dno)
)






DML语句使用(数据操作语句)
1.向表中添加一条记录
insert into employee values(1,'唐僧','部门经理','110',18800.08,10);
insert into employee(eno,ename,sal) values(2,'孙悟空',800);
insert into employee(eno,ename) values(3,'猪八戒'),(4,'沙和尚'),(5,'白龙马');


2.删除数据
delete from employee where eno=2


3.修改数据
update employee set job='普通员工' where job is null;
 null != ''


数据完整性的维护
约束
主键约束   primary key
不为空约束 no null
唯一约束 unique
检查约束 check
外键约束 foreign key
触发器
添加主键约束
alter table employee add constraint pk_eno primary key(eno);
添加不为空约束同时设置默认值
alter table employee change ename ename varchar(32) not null default '匿名';
添加不为空以及唯一约束
alter table department change dname dname varchar(32) not null unique;
设置检查约束
alter table employee add constraint ck_sex check(sex in('男','女'));
设置外键约束(被设置外键的列必须是另一个表的主键列)
alter table employee add constraint fk_dno foreign key(dno) references department(dno);


mysql数据类型
字符串
char
varchar
nchar
nvarchar
数值
int/integer
float
double
decimal
日期类型
date(日期格式 yyyy-MM-dd)
time(时间格式 HH:mm:ss)
datetime(日期时间格式:yyyy-MM-dd HH:mm:ss)
year(年份格式 yyyy)
timestamp(时间戳yyyyMMddHHmmss)
大文本
text
二进制类型
blob
binary


char和varchar区别
char定长字符串类型,char类型存储的字符串不论长度是否达到指定长度,都会占满char设定的存储空间,但是在存储定长数据时,效率较高,所以char类型一般用于声明长度固定的数据(性别,手机号,身份证号...)
varchar可变长度的字符串类型,类型中存储的数据长度会跟随实际添加的数据长度而自动申请空间,有效的节省空间(空间利用率较高),效率不如char,一般varchar用于长度不定的数据(家庭住址,姓名...)


nchar和char,varchar与nvarchar区别?(mysql中均以字符为单位)
nchar,nvarchar长度是以字符为单位
char,varchar长度以字节为单位
在使用中文数据时尽量以nchar,nvarchar为参考
在使用英文数据时以char,varchar为参考