挑战1个月-3mysql

mysql服务的启动和停止

net stop mysql

net start mysql

登陆mysql
mysql -u用户名 -p用户密码
如果是连接到另外的机器上,则需要加入一个参数-h机器IP
mysql -h110.110.110.110 -uroot -p123456

#删除数据表
DROP TABLE runoob_tbl;


增加新用户

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"

1.显示数据库列表。
show databases;
2.显示库里的数据表:
use mysql; //打开库,学过 FOXBASE 的一定不会陌生吧
show tables;
3.显示数据表的结构:
describe 表名;
4.建库:
create database 库名;
5.建表:
use 库名;
create table 表名 (字段设定列表);
#CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
#往表中加入记录
insert into TABLE1 values ("lala","M");
#插入多条
INSERT INTO table_name  (field1, field2,...fieldN)  VALUES  (valueA1,valueA2,...valueAN),(valueB1,valueB2,...valueBN),(valueC1,valueC2,...valueCN)......;

排序ORDER BY
SELECT * from runoob_tbl ORDER BY submission_date DESC;


分组GROUP BY
SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;
SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
#coalesce 来设置一个可以取代 NUll 的名称
UPDATE 更新
UPDATE runoob_tbl SET runoob_title='学习 C++' WHERE runoob_id=3;

ALTER 修改数据表名或者修改数据表字段
#使用了 ALTER 命令及 DROP 子句来删除以上创建表的 i 字段
ALTER TABLE testalter_tbl  DROP i;
ALTER TABLE testalter_tbl ADD i INT;
SHOW COLUMNS FROM testalter_tbl;

#把字段 c 的类型从 CHAR(1) 改为 CHAR(10)
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
#指定字段 j 为 NOT NULL 且默认值为100
ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;

#使用 ALTER 命令及 DROP子句来删除字段的默认值
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

连接INNER JOIN ON
#交集
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author;

#MySQL left join 与 join 有所不同。 MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

#MySQL RIGHT JOIN 会读取右边数据表的全部数据,即便左边边表无对应数据。
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;



6.删库和删表:
drop database 库名;
drop table 表名;
7.将表中记录清空:
delete from 表名;
8.显示表中的记录:
select * from 表名 where runoob_id=3;
SELECT * from runoob_tbl  WHERE runoob_author LIKE '%COM';
'%a'     //以a结尾的数据
'a%'     //以a开头的数据
'%a%'    //含有a的数据
'_a_'    //三位且中间字母是a的
'_a'     //两位且结尾字母是a的
'a_'     //两位且开头字母是a的

%:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
_:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
[]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
[^] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符 “%”、“_”、“[” 的语句无法正常实现,而把特殊字符用 “[ ]” 括起便可正常查询。


表创建结构语句
SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。
SHOW CREATE TABLE runoob_tbl \G;

复制表
INSERT INTO clone_tbl (runoob_id,
                       runoob_title,
                       runoob_author,
                       submission_date)
SELECT runoob_id,runoob_title,
       runoob_author,submission_date
FROM runoob_tbl;

导出数据
mysqldump -u root -p123456 --databases dbname > mysql.dbname
导入数据
mysqlimport -u root -p123456 < mysql.dbname。
文本数据导入数据库
use test;
load data local infile "文件名" into table 表名;
#LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE TABLE1;
#linux后台运行===关闭用ps -aux | grep python|xargs kill -9
nohup python3 manage.py runserver 0.0.0.0:8000 >djo.out 2>&1 &
centos云服务器里

#mysql5.7改密码

vim /etc/my.cnf---skip-grant-tables
service mysqld restart

use mysql;
update mysql.user set authentication_string=password('123456') where user='root'; 
flush privileges;
quit

你可能感兴趣的:(挑战1个月-3mysql)