码迷,mamicode.com
首页 > 数据库 > 详细

Mysql学习

时间:2018-12-23 16:52:14      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:建表   导入   tab键   ddl   flush   字段   多个   val   DBName   

Mysql常用语句

Mysql常用命令行大全

第一招、mysql服务的启动和停止
net stop mysql
net start mysql
第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP
第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use 库名;
show tables;
3、 显示数据表的结构:
describe 表名; desc 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表与删表:
use 库名;
create table 表名(字段列表); 例如:CREATE TABLE user (name VARCHAR(20), sex CHAR(1));
drop table 表名;
6、 清空表中记录:
delete from 表名 where ... ;   没有where会删除所用的记录。
7、 显示表中的记录:
select * from 表名;

8、往表中加入记录
insert into user values ("hyq","M"); 此法必须列出所有字段的值。
insert into user (name, sex) values ("hyq","M");

9、更新表中数据
update user set sex="f" where name=‘hyq‘;

第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;

4.导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;

5、退出MYSQL命令:quit / exit (回车) 
====================================
DML 数据操作语言
对表记录的增删改
插入:INSERT INTO 表名(列1,列2,...) VALUES(值1,值2,...)
SELECT * FROM 表名;——显示
更新:UPDATE 表名 SET 列1=列值1,列2=列值2,WHERE 条件;
注意,不加where会修改列的所有值。
删除:DELETE FROM 表名 WHERE 条件
不加where会修改列的所有记录。
另外,delete后,再添加,id会不连续。
还有一个删除表记录的是:TRUNCAT 表名 是DDL的

DCL数据控制语言
修改密码:
法1:mysqladmin -uroot -p旧密码 password 新密码
法2:update mysql.user set password=PASSWORD(‘新密码‘) where user=‘root‘;
若忘记了密码,则
关闭数据库
mysqld --skip-grant-tables
然后
mysql
进入修改密码

创建用户
CREATE USER 用户名 @‘IP地址‘ IDENTIFIED BY ‘密码‘
此用户只能在指定的ip上使用,所有的IP要使用%

用户授权
GRANT 权限1,权限2,... ON 数据库名.* TO 用户名 @IP地址
例如:grant select,update,insert on shop.* to ‘test1’ @‘196.168.1.106’

撤销权限
REVOKE 权限1,... ON 数据库名.* FROM 用户名 @ip地址

用户创建与授权一句:
grant 权限1,... on 数据库名.* to 用户名@ip地址 identified by 密码
flush privileges

显示权限
show grant for ‘test‘@‘192.16.8.1.0‘;
删除用户
DROP USER 用户名@IP地址
=====================================================================


 

事务:一个sql语句就是一个事务,事务可以保证一组sql语句要么都成功要么都失败。

1. 可以关闭 set autocommit=0关闭自动提交,最后插入或修改时 只有commit才会最终存入。

2. 语句格式如下

start transaction;
sql语句。。。
如果上面的sql语句没有问题
commit(提交)-》写入磁盘
如果有问题
rollback(回滚)-》不写入磁盘

原子性:一个事务中的所有语句,要么全做,要么全不做。

一致性:让数据保持逻辑上的“合理性”,比如,一个商品出库时,既要仓库中的数目减1,又要让用户的商品数加1 。

隔离性:如果多个事务同时并发执行,但每一个事务就像各自执行一样。

持久性:一个事务执行成功,则对数据来说应该是一个明确的硬盘数据更改,而不仅仅是内存中的变化。

 


触发器

1、创建触发器

  create trigger 触发器名 after / before   insert / update / delete    on 表名  for each row
  begin
    sql语句
  end;

2、查看触发器

  show create trigger 触发器名

3、删除触发器

  drop trigger 触发器名

 

Mysql学习

标签:建表   导入   tab键   ddl   flush   字段   多个   val   DBName   

原文地址:https://www.cnblogs.com/htj10/p/10164376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!