1、MySQL基础操作详解p数据的增删改查p数据表操作p数据库操作p命令行下操作简介苏林苏林henu09-511lib-JAVAhenu09-511lib-JAVA组组基本操作启动和终止nMySQL服务启动命令:nnet start mysqlnMySQL服务终止命令:nnet stop mysql基本操作登陆MySQLn进入MySQL命令行方式一pCMD下输下输入:mysql-u用户名-p密码n例:用户名:root、密码:passwordn则:mysql-uroot-ppasswordn进入MySQL命令行方式二p从开始菜单中选择:MySQL Command Line Clientp然后输入密码
2、。登陆成功效果如下:基本操作用户管理n用户信息都存储在mysql.user表。n添加用户pGRANT 权限 ON 位置 TO 用户名登录主机 identified by 密码n权限:Insert、Delete、Update、Select等等n位置:数据库.表,通配符*表示所有(*.*表示所有数据库中的所有表)n登陆主机:localhost表示本地登陆、%表示即可本地登陆也可远程登陆n用户名和密码:写入自定义的新用户n删除用户pmysqlDELETE FROM mysql.user WHERE User=用户名;n修改密码pmysqlupdate mysql.user SET password=
3、password(新密码)where user=用户名 and host=localhost或%;pmysqlflush privileges;数据库操作n登陆MySQL中后n在提示符下运行相关命令,每个命令以;结束p创建数据库:CREATE DATABASE 数据库名;n例:create database heihei;创建了一个叫做“heihei”的数据库p删除数据库:DROP DATABASE 数据库名;n例:drop database heihei;删除了上一步创建的数据库“heihei”p选择使用某一个数据库:use 数据库名;n例:use heihei;使用这个叫做“heihei”
4、的数据库p显示当前所有数据库:SHOW databases;数据表操作表n创建数据表:CREATE TABLE 表名(字段列表);p数据约束,指定某列的数据约束条件(以下列出常用约束):nUNIQUE:唯一约束nAUTO_INCREMENT:自增长nNOT NULL:非空约束nDEFAULT:默认值约束nPRIMARY KEY:设定主键p例:create table stu(pidint auto_increment primary key,pnamevarchar(5)not null,p birthdate default 1991-1-18p );n删除数据表:DROP TABLE 表名
5、;n显示数据表结构:DESCRIBE 表名/数据库名.表名;n显示当前数据库中的所有表:SHOW TABLES;数据表操作表与列n根据已有表创建新表pCREATE TABLE 表名 LIKE 旧表名;n此方法仅仅采用原表的全部表结构,并不复制数据pCREATE TABLE 表名 AS SELECT*FROM 旧表名;n此方法可以选择性的复制原表结构,并且复制相应数据n列操作:ALTER 表名p添加列:ALTER TABLE 表名 ADD 列名 数据类型 等等;n例:alter table student add heihei int NOT NULL;p删除列nadd换为drop即可p修改列:
6、ALTER TABLE 表名 MODIFY 列名 属性等等;n例:alter table student modify id int auto_increment primary key;p列名的修改各数据库不统一、应尽量避免列名的修改数据表操作主键n主键操作p设置主键:ALTER TABLE 表名 ADD PRIMARY KEY(列名);n例:alter table student add primary key(heihei);n如果此列不适合作为主键,则出现错误。p删除主键:ALTER TABLE 表名 DROP PRIMARY KEY;n例:alter table student dr
7、op primary key;n注:数据表中可以没有主键,但是尽量不要这样n外键操作p设定外键nALTER TABLE 表名 FOREIGN KEY(列名)REFERENCES 其他表(列名);n例:alter table student add foreign key(abc)references stu(id);n也可以在创建表时候对指定列进行外键约束:n create table xxx(nid int FOREIGN KEY REFERNCES 其他表名(列名)n);数据表操作外键p删除外键n如果某个表中设定了外键,那么此数据表的数据操作都将受到此外键的约束。即使表存在外键约束,MyS
8、QL还允许表的删除操作且不产生任何错误(即使这样做可能会破坏更早创建的外键)n因此删除外键的一种原始方法就是直接删除表。n删除外键的第二种方式:n1、获取外键名:SHOW CREATE TABLE 表名;提取外键名n2、删除外键:ALTER TABLE 表名 DROP FOREIGN KEY 外键名pshow create table student;/提取到外键名为student_ibfk_1palter table student drop foreign key student_ibfk_1;p注:外键名是由MYSQL自动生成而不是自己设定的列名数据的增删改查n增加关键字:INSERTp
9、增加数据:INSERT INTO 表名(列)VALVES(值);n例:insert into student(name,birth)values(sl,1991-1-18);n注:如果插入数据不满足约束条件则会出现SQL错误!n删除关键字:DELETEp删除数据:DELETE FROM 表名 WHERE 范围;n例:delete from student where id=1;n注:删除student表中id=1的数据,WHERE子句后面讲解n例:delete from student;n注:如果不设定范围则表示删除当前表中所有数据数据的增删改查n修改关键字:UPDATEpUPDATE 表名
10、SET 列=值 WHERE 范围n例:update student set name=sll,birth=1234 where name=sl;n注:如果不设定WHERE子句则整个数据表都被修改n查询关键字:SELECTpSELECT 列名/*FROM 表名 WHERE 范围n例:select*from student;n注:查询student表中的所有数据n例:select name,birth from student where id=2;n注:查询id为2的学生的name值和birth值WHERE子句nWHERE子句用于设定SQL语句操作的范围p主要用在SELECT、UPDATE、DE
11、LETE语句中nWHERE子句中的判断操作符:p=表示等于:student.id=1;birth=1991-01-18;p表示不等于:student.id1;p表示小于。p=表示不小于。pbetween.and.表示之间:where id between 5 and 10;plike表示模糊匹配,主要利用一些通配符匹配。pregexp表示扩展正则表达式匹配,功能更全面。前提是会用正则表达式!通配符和正则表达式n%:匹配任意多个任意字符p 例:where name like%l:表示任意以l结束的字符串p 例:where name like l%:表示任意以l开始的字符串p 例:where name like%l%:表示包含l的字符串n_:匹配一个任意字符p 例:where name like _l:表示一个任意字符加上字符lnSQL中正则表达式与JS中正则表达式相同n补充:LIMIT限制p例:LIMIT M,N;从第M条开始取出符合条件的N条数据p例:LIMIT N;从第一条取出符合条件的N条数据