SQL基本语句
基本SQL语句:
#进入mysql客户端 $mysql mysql> select user(); #查看当前用户 mysql> exit # 也可以用\q quit退出 # 默认用户登陆之后并没有实际操作的权限 # 需要使用管理员root用户登陆 $ mysql -uroot -p # mysql5.6默认是没有密码的 #遇到password直接按回车键 mysql> set password = password('root'); # 给当前数据库设置密码 # 创建账号 mysql> create user 'eva'@'192.168.10.%' IDENTIFIED BY PASSWORD '123';# 指示网段 mysql> create user 'eva'@'192.168.10.5' # 指示某机器可以连接 mysql> create user 'eva'@'%' #指示所有机器都可以连接 # 远程登陆 $ mysql -uroot -p123 -h 192.168.10.3 # 给账号授权 mysql> grant all on *.* to 'eva'@'%'; mysql> flush privileges; # 刷新使授权立即生效 # 创建账号并授权 mysql> grant all on *.* to 'eva'@'%' identified by '123' mysql的账号操作
简单的文件操作命令
1. 操作文件夹(库) 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 删除: drop database db1; 2. 操作文件(表) 先切换到文件夹下:use db1 增:create table t1(id int,name char); 查:show tables; 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 删:drop table t1; 3. 操作文件中的内容(记录) 增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3'); 查:select * from t1; 改:update t1 set name='sb' where id=2; 删:delete from t1 where id=1; 清空表: delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。 truncate table t1;数据量大,删除速度比上一条快,且直接从零开始, *auto_increment 表示:自增 *primary key 表示:约束(不能重复且不能为空);加速查找
常用命令:
命令 mysqld --initialize-insecure 初始化命令 mysqld 开启服务端 mysql -uroot -p 开启一个新的cmd 开启客户端、连接服务端 password密码 show databases 查看所有的数据库 create database db1 创建数据库 tasklist |findstr mysql 开启一个新的cmd 查看进程 taskkill /F /PID 进程号 杀死进程 安装window服务 mysqld --install 安装window服务 mysqld --remove 移除window服务 net start mysql : 开启服务端 net stop mysql :关闭服务端 selsct user(); 查询 exit 退出 mysqladmin -uroot -p password "123" 设置密码 忘记密码怎么办? (1) 先关闭掉之前的mysql服务器的进程 net stop mysql (2) 跳过授权表开启mysql的服务端 mysqld --skip-grant-tables (开启服务端的 约束条件跳过授权) (3) 客户端连接 mysql -uroot -p 在开一个cmd (4) 更改密码:update mysql.user set authentication_string =password('') where User='root'; (5) 刷新权限 flush privileges; 在开一个cmd 查看进程号:tasklist |findstr mysql 杀死进程:taskkill /F /PID 进程号 net start mysql : 开启服务端 如何创建用户和密码 create user 'mjj'@'192.118.1.1' identified by '123'; create user 'mjj'@'192.118.1.%' identified by '123'; create user 'yining'@'%' identified by '91'; 给当前的用户授权 grant all privileges on *.* to "xxxx"@'%'; 移除当前用户的权限 revoke all privileges on *.* from 'xxx'@'%'; 连接 mysql -uyining -h 192.168.13.29 -P 3306 -p91 show databases; 查看所有的数据库 use db1; 使用数据库 操作文件夹(库) create database db1 charset utf8; 增 show create database db1; 查看当前创建的数据库 show databases; 查看所有的数据库 alter database db1 charset gbk; 改 drop database db1; 删 操作文件(表) use db1; 切换文件夹 select database(); 查看当前所在文件夹 create table t1(id int,name char(10)); 增 show tables; 查看所有的表 show create table t1; 查看当前的这张t1表 desc t1; 查看表的详细信息 alter table t1 modify name char(6); 修改 modify修改字节数 alter table t1 change name NAMA char(7); 改变name为大写的NAME change字数和名字 drop table t1; 删除表 操作文件内容 insert into t1(id,name) values(1,"mjj01"),(2,"mjj02"),(3,"mjj03"); 插入一条数据,规定id,name数据leilei select id from db1.t1; 查id select id,name from db1.t1 select * from db1.t1; 查所有 update db1.t1 set name='alex' where id=2; 改 delete from t1 where id=2; 创建数据库 help create database; 求救语法 create database 数据库名 charset utf8; show database; 查看数据库 show create database db1; 查看当前库 select database(); 查看所有库 use 数据库名 进入数据库 drop database 数据库名; 删除数据库 alter database db1 charset utf8; 修改数据库 存储引擎 mysql 5.5版本之后默认为innodb存储引擎 另外还有mysiam、memory、blackhone #memory,在重启mysql或者重启机器后,表内数据清空 #blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录 create table t1(id int)engine=innodb; create table t2(id int)engine=myisam; create table t3(id int)engine=memory; create table t4(id int)engine=blackhole; 创建表 create database db2 charset utf8; 创建数据库 use db2; 使用数据库 create table a1( id int, name varchar(50), age int(3) ); 创建a1表 insert into a1 values (1,'mjj',18), (2,'wusir',28); 插入表的记录 select * from a1; 查询a1表中的存储数据 desc a1; 查看a1表的结构 show create table a1\G; 查看表的详细结构 复制表 create database db3 charset utf8; 新创建一个数据库db3 use db3; 使用db3 create table b1 select * from db2.a1; 复制db2.a1的表结构和记录 select * from db3.b1; 查看db3.b1中的数据和表结构 create table b2 select * from db2.a1 where 1>5; 只要表结构,不要记录 create table b3 like db2.a1; 使用like(只拷贝表结构,不拷贝记录) drop table 表名; 删除表: 数据类型 整型:tinyint int bigint 浮点型: float double decimal 时间:year date time datetime 字符:char 定长 > varchar 变长 > text 文本 时间类型: datetime 枚举:enum 多选一 集合:set create table consumer( id int unsigned, name varchar(20), sex enum('male','female','other'), level enum('vip','svip','vvip'), fav set('smoke','drink','tangtou') ); insert into consumer values(1,'一宁','other','vvip','smoke,drink,tangtou'); 布尔:boolean tinyint(1) 存1 表示true,存0 表示false 函数: now() 根据字段的数据类型获取当前的时间格式 char_length: 获取字符长度 length():获取字节数 sql中默认是有符号的 如果设置无符号unsigned 用0填充 zefofill 约束 作用:保证数据的完整性和一致型 表的设计 1.not null(不可空) 与 default create table tb1(id int not null default 2,name char(20) not null); insert into tb1 values(1,'alex'); insert into tb1(name) values('武sir'); insert into tb1(id) values(3); 2.unique 单列唯一 create table dep(id int not null,name varchar(20) unique); insert into dep(id,name) values(1,'alex'); insert into dep(id,name) values(2,'alex'); 多列唯一 表示每一列都唯一 create table dep2(id int unique,name varchar(20) unique); insert into dep2(id,name) values(1,'alex'); 组合唯一 (联合唯一) 只要有一列不同,就可以插入数据 create table dep3( id int, name varchar(20), unique(id,name) ); insert into dep3(id,name) values(1,'alex'); insert into dep3(id,name) values(1,'alex2'); insert into dep3(id,name) values(2,'alex'); 3.primary key (索引优化查询)