玩转Mysql命令

连接数据库mysql -hlocalhost -uroot -p


在MYsql的跟目录文件下进行


show databses;
展示所有数据库

解决方法1:在MySql安装目录下找到my.ini,将[mysql]下的default-character-set=latin1改为default-character-set=utf8,保存,然后重启MySql服务就可以从命令行成功导入了。缺点,因为部署的话,可能无法配置用户的计算机,那么方法一就无用武之地了。。。

解决方法2:在数据库脚本文件开头加入一行 set character set utf8;,在库名后加入default character set utf8;在表) 后加入default charset =utf8;,在添加数据前加入一行 set character set utf8;就可以咯。


展示所有表
show tables;

创建表
CREATE TABLE if not exists five( 如果这个表不存在就创建
id INT(10) AUTO_INCREMENT PRIMARY KEY, 设置自增id 然后是主键
NAME VARCHAR(20) NOT NULL

)CHARSET =utf8 `six` 设置字符集

添加数据

INSERT INTO six(NAME) VALUES('1') 如果有自增id 一定要指定添加的列


添加外键

语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);


删除外键

ALTER TABLE `tb_active` DROP FOREIGN KEY `FK_ID`


查询前一行
SELECT * FROM student LIMIT 1


添加默认约束

ALTER TABLE result
ALTER examDate SET DEFAULT '1999-1-1'

删除
ALTER TABLE result
ALTER examDate DROP DEFAULT

----事物

  rollback事务回滚
  commit 事务提交

禁止自动提交
SET AUTOCOMMIT = 0

自动提交
SET AUTOCOMMIT = 1


---视图
创建试图

CREATE VIEW student_view
AS
SELECT StudentNo,Studentname FROM student


查看视图
select * from student_view

查看所有视图

USE information_schema;
SELECT * FROM views


--索引

创建索引
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
CREATE INDEX indexName ON mytable-name(username(length));
如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。


修改表结构(添加索引)
ALTER table tableName ADD INDEX indexName(columnName)

查看所有的索引

SHOW INDEX FROM `student`;

/*--创建学生表组合索引--*/
CREATE INDEX index_name_gradeId ON student(studentName,gradeId);
/*--创建学生表唯一索引--*/
CREATE UNIQUE INDEX index_iden ON student(identityCard);
/*--创建成绩表普通索引--*/
CREATE INDEX index_result ON result(studentResult);


---Mysql 备份

必须Dos命令里面5
mysqldump -uroot -p123 test > test.sql

导入
mysql -uroot -p1234 db1 < c:a.txt


---存储过程
创建一个带变量的存储过程
DELIMITER $$

CREATE PROCEDURE add2

(

IN a INT,
IN b VARCHAR(20)


)

BEGIN

declare c int default 0;

set c = a + b;

SELECT c as c;

END$$
DELIMITER ;

调用
CALL add2(1,'DD')


创建变量
set @on =1


SET @zhi=1;

SELECT COUNT(*) INTO @zhi FROM student; 将语句查出来的值给一个变量,但是这个变量只能接收一行数值

SELECT @zhi

原文地址:https://www.cnblogs.com/wlphp/p/7944575.html