重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
登陆mysql
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了大观免费建站欢迎大家使用!
打cmd命令终端,如果已经添加了mysql的环境变量,可以直接使用命令
mysql -uroot
直接回车,之后按提示输入密码,
如果未添加mysql的环境变量,可以切换到mysql的安装目录下的bin目录,再使用
mysq -uroot
你也可以手动为mysql添加环境变量。这里就不介绍怎么添加环境变量的方法了
密码输入正确之后,就会出现“Welcome to the MySQL monitor. Commands end with ; or \g. ......”字样,
命令行出现“mysql”字符前缀。现在你就可以使用命令对mysql进行操作了。曾经有没有过这样的经历,原来看见别人在命令行里面咔咔的猛敲时,就一通的崇拜,觉得这人很牛,现在你也可以让别一通崇拜了。
mysql的所有命令都以";"或者\g为结束符
2
新建数据库
在新建数据库之后,我们先设置一下字符集
mysqlSET NAMES utf8;
然后再创建数据库
mysqlCREATE DATABASE lesson
3
显示所有数据库
mysqlSHOW DATABASES;
使用数据库
mysqlUSE 数据库名;
新建表
mysqlCREATE TABLE study(
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '学生id号',
username varchar(30) NOT NULL DEFAULT '' COMMENT '学生名字',
class tinyint(3) unsigned NOT NULL,
sex enum('男','女','保密') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '保密' COMMENT '性别',
addtime int(10) NOT NULL DEFAULT '0',
PRIMARY KEY (id)
)ENGINE=InnoDB COMMENT = '学生表';
显示所有表
mysqlSHOW TABLES;
修改表的名称
mysqlRENAME TABLE study TO study_new ;
或者
mysqlALTER TABLE study_new RENAME TO study;
显示字段信息
SHOW COLUMNS FROM study或者DESCRIBE study
插入数据
mysql insert into study (username,class,sex)VALUES('小王',1,'男'),('小四',2,'女');
查询数据(使concat函数拼接数据)
mysql SELECT username,CONCAT(class,'班'),sex FROM study;
删除数据
mysqlDELETE FROM study WHERE id=1;
删除数据表
DROP TABLE study;
删除数据库
mysql DROP DATABASE lesson;
在where条件中,每个条件之间的链接可以用and或or。or就是或的意思,但注意要放在最后一个条件中,不然会有问题的。
在看参考手册的时候看到个案例
3.6.8 Calculating Visits Per Day
首先要说明以下几个函数
bit_count:
就是计算二进制里有多少个1
10的二进制是1010
bit_count(10) = 2
100的二进制是1100100
bit_count(123) = 3
bit_or:
按位或,就是如果两边一个位置上存在1,那这个位置就为1
拿上面10和100举例
10 | 100 转换为二进制就是 1010|1100100
1010
1100100
1101110
1day:
向左位移,向左位移几位,然后用0填补
比如day=2
12 = 100
day=4
14 = 10000
回到主题,现在要计算出图中每天的访问量,可以看到day列中是存在重复记录的,所以要去除,一般思路应该会写出以下SQL:
这个的确可以得到正确值,但是官方参考文档里使用了更巧妙的算法
为了演示,现在将day设定为1,2,2,3好了,那就等于
bit_or(11, 12, 12, 13)
10 | 100 | 100 | 1000 = 110 | 100 | 1000 = 110 | 1000 = 1110
当110 | 100的时候,相同的值就不会发生变化,所以最后bit_count的结果就为3
插入2w条数据后,看下执行计划,第一种SQL执行两遍全表扫描
为了明确看到查询性能,我们启用profiling并关闭query cache:
or就是或者,只要其中一个成立就成立了。例如成绩表里,查询语文或者数据90分以上的,就可以用OR来判断。
项目中可能回遇到or 与 and 连用,我认为or连接的前后是两个条件.所以不能一个条件分开写.
比如 一张表a 有 user_code,shared,del,company_id四个字段 我想查shared=1 且 del=0 或者del=0的数据 且company_id=1, shared是共享的意思,不区分公司,那么可以这样写
例 select user_code from a where shared=1 and del=0 or del=0