启动mysql
net start mysql
登陆mysql (需要密码)
mysql -u root -p
// 修改密码
set password for root@localhost = password('123');
// 创建数据库
CREATE DATABASE <数据库名>;
// 删除数据库
drop database <数据库名>;
//使用数据库
use <数据库名>;
//创建表(至少有一列)
建表时常用数据类型有:int,bigint,varchar,longtext
// 如果不存在则创建userinfo ,
//让PRIMARY KEY ( `runoob_id` )设置为主关键字。
CREATE TABLE IF NOT EXISTS `userinfo`(`id` INT UNSIGNED AUTO_INCREMENT,
`username` VARCHAR(100) NOT NULL,
`password` VARCHAR(40) NOT NULL,
`create_time` DATETIME,PRIMARY KEY ( `id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;
建表时给字段加上 UNIQUE 可以唯一性
//让PRIMARY KEY ( `runoob_id` )设置为主关键字。
CREATE TABLE IF NOT EXISTS `userinfo`(`id` INT UNSIGNED AUTO_INCREMENT,
`username` VARCHAR(100) NOT NULL UNIQUE,
`password` VARCHAR(40) NOT NULL,
`create_time` DATETIME,PRIMARY KEY ( `id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;
增
// 新增一条数据runoob_id已经设置为自动增加(AUTO_INCREMENT)
INSERT INTO userinfo ( username, password,create_time)VALUES( 'admin', '123456', now());
// 新增一列
alter table 表名 add 字段名 数据类型;
查
查询
查询所有:* 代表所有
select * from useriinfo;
查第几条到第几条(从第一条到第十条),据说这样超级慢。
select * from users LIMIT 1,10
另一种解决方案
指定列查询 。
Tip:* 相对比指定查询更耗资源,当表字段过多时且只取表中少量字段时,尽量使用指定查询。
select runoob_title,runoob_author from useriinfo;
条件查询:关键字有and和 or
//查询等于的是使用= ,不等于的话在mysql里面不是使用!=,而是使用<>,例子:
select * from useriinfo where runoob_title<>'学习 Python' and runoob_author<>'RUNOOB.COM';
select * from useriinfo where runoob_title='学习 Python' and runoob_author='RUNOOB.COM';
select * from useriinfo where runoob_title='学习 Python' or runoob_author='RUNOOB.COM';
模糊查询 like%不加%的话,like和=等价
select * from useriinfo where runoob_title like '%Python%';
贴上官网解释
排序 order by runoob_id 正序,order by runoob_id desc 倒序。列子:
select * from useriinfo order by runoob_id;
select * from useriinfo order by runoob_id desc;
select * from useriinfo where runoob_title='学习 Python' or runoob_author='RUNOOB.COM' order by runoob_id;
改
SET SQL_SAFE_UPDATES = 0;
更新
// 全部更新
UPDATE useriinfo SET runoob_title='wada';
//指定更新
UPDATE useriinfo SET runoob_title='aaa' WHERE runoob_id=3;
删
注意:使用DELETE删除数据就不能恢复了。
软删除:
一般情况下不会使用delete去删除数据,而是给字段加一个state的字段,然后使用update去更新这个字段。如果state为1则表示有效,为0则是无效数据。
删除
// 删表
drop table userinfo;
// 删表内所有数据
DELETE FROM useriinfo;
// 删除指定数据
DELETE FROM useriinfo WHERE runoob_id=3;