目录
写在前面
SQL关键字推荐用大写!
对数据库的操作
连接MySQL:
输入命令mysql -u root -p然后输入密码即可,如果是远程连接,需要输入主机,如果端口不是默认的3306,还需要输入端口 mysql -u root -proot -h127.0.0.1 -P3306,端口的P是大写的,因为密码的p是小写。
修改密码:
alter user 'root'@'localhost' identified by 'root';修改密码,把你自己的密码填到最后一个单引号内即可
创建数据库:
create database 数据库名;在创建数据库的时候也可以判断一下要创建的数据库是否存在,create database if not exists 数据库名;
显示所有数据库,其中四个是默认的:
show databases;
删除数据库:
drop database 数据库名;删除时,可以判断如果存在再删除,drop database if exists 数据库名;
使用数据库:
use 数据库名;
查询当前使用的数据库
select database();
查看数据库编码格式:
show variables like 'character%';
修改数据库编码为utf8,重启服务后生效
set character_set_client = utf8;
set character_set_connection = utf8;
set character_set_database = utf8;
set character_set_results = utf8;
set character_set_server = utf8;
停止数据库服务,在DOS下以管理员身份运行
net stop mysql
开启数据库服务,在DOS下以管理员身份运行
net start mysql
对表的操作
显示该数据库中的表:
show tables;
显示表结构:
desc 表名;
创建表
create table 表名(
字段1 数据类型1,
字段2 数据类型2,
字段3 数据类型3,
...
字段n 数据类型n
);
提示:这里的数据类型主要包括数值类型、日期和时间类型和字符串类型。
举个例子
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
tips:AUTO_INCREMENT是自增的意思,也就是id可以自动增长
约束
从上面可以看出,对字段有一些约束,其中有
非空约束(not null),列中的数据不能为空
唯一约束(unique),列中的数据不能重复
主键约束(primary key),唯一且非空
检查约束(check)tips:MySQL不支持该约束
默认约束(default),也就是给某个字段默认值
外键约束(foreign key),两表之间建立联系
删除表
drop table 表名;删除的时候可以判断一下该表是否存在drop table if exists 表名;
修改表名
alter table 表名 rename to 新表名;
对表添加列
alter table 表名 add 表明 数据类型;
对表删除某一列
alter table 表名 drop 列名;
修改列的数据类型
alter table 表名 modify 列名 新数据类型;
修改列名和数据类型
alter table 表名 change 列名 新列明 新数据类型;
写在最后
其实这些操作,一般我们都是用可视化工具来完成的,例如Navicat,而且这些操作平时用的不多,我们主要用的还是对表的增删改查。