打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
新建数据库
在新建数据库之后,我们先设置一下字符集
mysql>SET NAMES utf8
然后再创建数据库
mysql>CREATE DATABASE lesson
3
显示所有数据库
mysql>SHOW DATABASES
使用数据库
mysql>USE 数据库名
新建表
mysql>CREATE 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 = '学生表'
显示所有表
mysql>SHOW TABLES
修改表的名称
mysql>RENAME TABLE study TO study_new
或者
mysql>ALTER 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
删除数据
mysql>DELETE FROM study WHERE id=1
删除数据表
DROP TABLE study
删除数据库
mysql>DROP DATABASE lesson
update a set flag='p' where flag is null你这图片不是插入页吗?
如果你确定真没有值写入,首先查一下,你的set列中是否有'p'还是'P',更新完后可以用show warnings查看警告信息
补充:
很有可能你指的空值不是null,而是'',所以应该
update a set flag='p' where flag=''
尝试一下。
mysql or用不到索引不是说,一条sql语句只能用一个索引么
但SELECT * FROM `comment` WHERE `toconuid` = '10' or `tocomuid` = '10'
其中 toconuid列 和 tocomuid列 分别为单列索引
explain后 显示两个索引都用了,extra为 Using union(toconuid,tocomuid)Using where
答:
凡事总有特列。
而MYSQL可以理解为把这个语句拆成了两条语句SELECT * FROM `comment` WHERE `toconuid` = '10'unionSELECT * FROM `comment` WHERE `tocomuid` = '10'
在某些情况下,or条件可以避免全表扫描的。
1 .where 语句里面如果带有or条件, myisam表能用到索引, innodb不行。
1)myisam表:
CREATE TABLE IF NOT EXISTS `a` (
`id` int(1) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`aNum` char(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6
mysql>explain select * from a where id=1 or uid =2
+----+-------------+-------+-------------+---------------+-------------+---------+------+------+---------------------------------------+
| id | select_type | table | type| possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------------+---------------+-------------+---------+------+------+---------------------------------------+
| 1 | SIMPLE | a | index_merge | PRIMARY,uid | PRIMARY,uid | 4,4 | NULL |2 | Using union(PRIMARY,uid)Using where |
+----+-------------+-------+-------------+---------------+-------------+---------+------+------+---------------------------------------+
1 row in set (0.00 sec)
2)innodb表:
CREATE TABLE IF NOT EXISTS `a` (
`id` int(1) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`aNum` char(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6
mysql> explain select * from a where id=1 or uid =2
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | a | ALL | PRIMARY,uid | NULL | NULL| NULL |5 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
2 .必须所有的or条件都必须是独立索引:
+-------+----------------------------------------------------------------------------------------------------------------------
| Table | Create Table
+-------+----------------------------------------------------------------------------------------------------------------------
| a | CREATE TABLE `a` (
`id` int(1) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`aNum` char(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------------------------------------------------------------------------
1 row in set (0.00 sec)
explain查看:
mysql>explain select * from a where id=1 or uid =2
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | a | ALL | PRIMARY | NULL | NULL| NULL |5 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
全表扫描了。
3. 用UNION替换OR (适用于索引列)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)