Mysql基础(一)
一、Mysql常用操作
--【1】登录与退出 --登录 cmd 注意:path查看并没有配置MySQL的环境变量,我的MySQL数据库是安装在下面的路径下的,故进入MySQL的bin 目录下: C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin 在Mysql的bin目录下执行命令: mysql -hlocalhost -uroot -proot -h后表示的是服务器,-u表示用户,-p后表示密码。 --退出 exit quit \q 一般使用第三方插件Navicat,初始的用户名及密码均为root。 --【2】显示当前服务器版本 SELECT VERSION(); --【3】显示当前日期 SELECT NOW(); --【4】显示当前用户 SELECT USER(); --【5】创建数据库 CREATE DATABASE MySchool CHARACTER SET GBK; --【6】查询当前服务器的数据库列数 SHOW DATABASES; --【7】查看创建数据库所使用的编码方式 SHOW CREATE DATABASE MySchool --创建数据库并设置数据库的编码方式 CREATE DATABASE IF NOT EXISTS MySchool; CHARACTER SET gbk; --【8】修改数据库的编码方式 ALTER DATABASE MySchool CHARACTER SET UTF8; --【9】删除数据库 DROP DATABASE MySchool; --【10】打开数据库 USE MySchool; --【11】创建表 #'创建flower表' CREATE TABLE flower ( id int(10) PRIMARY key auto_increment ,#'主键列' name VARCHAR(20) not null,#'花蕊名称' price float not null,#'花蕊价格' production VARCHAR(20)#'原产地' ) --> PRIMARY key-->主键 auto_increment-->自增 -->cid int(10) REFERENCES classroom(id)--->学生表中,其班级编号为班级表的外键。 --【12】插入数据 INSERT INTO USERINFO (ID,USERNAME,PWD) VALUES(1001,'张三',"1234"); insert into flower VALUES(DEFAULT,'牡丹',12.22,'中国'); --【13】查询 SELECT * FROM USERINFO WHERE USERNAME='张三' AND PWD='1234'; --分页查询 select * from userinfo limit 0,2; --limit用法如下 --第一个参数是指要开始的位置的下标(即要减去的数据),第二个参数是指每页显示多少条数据 --第一页用0表示 --Mysql分页: select * from tableName where 条件 limit (当前页码-1)*页面容量 , 页面容量 --【14】修改表的名字 rename table1 to table2; --【15】常用的命令 show tables; 显示所有表; MySQL数据库在每个用户的结构:数据库-->表 --【16】新增用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码” 如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为”%”。 如果你不想user1有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on mydb.* to user1@localhost identified by ""; --【17】修改密码 1.1.1Update user set password=password(‘root) where user=’root’ [=password] 是 mysql自带的一个函数,用来修改密码。-当密码不对,或已经忘记密码时,直接按回车键进去执行这条命令。(输入mysql后) 1.1.2flush privileges;修改完密码需要刷新。 1.1.3要重启mysql服务 service mysqld restart 1.1.4mysql -hlocalhost -uroot –proot --->登录mysql --【18】Linux系统中登录MySQL数据库必须启动数据库 Service mysqld start :开启 Service mysqld stop :关闭 如何查看mysql的服务是否开启:ps -ef |grep mysql 查看mysql的服务 --【19】delete,drop,truncate的区别 Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行)。 删除某一行:Delete from 数据表名称 where 列名称=值; 删除所有行:Delete * from 数据表名称 Drop :删除数据表或数据库,或删除数据表字段。 删除数据库: drop database 数据库名称 删除数据表:(表的结构、属性、索引也会被删除) use 数据库名称 drop table 数据表1名称,数据表2名称 删除数据表字段(列): use 数据库名称 alter table 数据表名称 drop column 字段名(列名称) Truncate:删除数据表中的数据(仅数据表中的数据,不删除表)。 truncate table 数据表名称 “ TRUNCATE TABLE语句是一种快速、无日志记录的方法。TRUNCATE TABLE语句与不含有WHERE 子句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE语句速度更快,并且使用更少的系统资源和事务日志资源。” 删除数据的速度,一般来说: drop> truncate > delete 与 DELETE 语句相比,TRUNCATE TABLE语句具有以下优点: 所用的事务日志空间较少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放。 使用的锁通常较少。 当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。TRUNCATE TABLE 始终锁定表和页,而不是锁定各行。如无例外,在表中不会留有任何页。 执行 DELETE 语句后,表仍会包含空页。例如,必须至少使用一个排他 (LCK_M_X) 表锁,才能释放堆中的空表。如果执行删除操作时没有使用表锁,表(堆)中将包含许多空页。对于索引,删除操作会留下一些空页,尽管这些页会通过后台清除进程迅速释放。 与 DELETE 语句相同,使用 TRUNCATE TABLE语句清空的表的定义与其索引和其他关联对象一起保留在数据库中。 --【20】SQL语句 DDL:create,alter,drop操作的是表结构。 create创建表,序列 CREATE TABLE flower ( id int(10) PRIMARY key auto_increment ,#'主键列' --auto_increment自增 name VARCHAR(20) not null,#'花蕊名称' -- PRIMARY key主键 price float not null,#'花蕊价格' production VARCHAR(20)#'原产地' ) create sequence sq_stuno;--Oracle中用序列 --alter添加主键,添加新的列 --添加新的一列 alter table t_admin1 add password varchar2(20); --修改表中某列的数据类型 alter table t_admin1 modify sex varchar2(2); --添加外键 alter table t_position add constraint FK_T_POSITI_REFERENCE_T_COMPAN foreign key (cid)references t_company (cid); --添加主键: alter table t_admin1 add constraint pk_id primary key (userid) ; DQL:select DML:insert ,delete,update操作的是表中具体的行数据。 --【21】优化
二、常用语法
2.1创建主键的三种方式
CREATE TABLE user( uid INT PRIMARY KEY, uname VARCHAR(10), address VARCHAR(20) ) CREATE TABLE user( uid INT, uname VARCHAR(10), address VARCHAR(20), PRIMARY KEY(uid) ) CREATE TABLE user( uid INT, uname VARCHAR(10), address VARCHAR(20) ) ALTER TABLE user ADD PRIMARY KEY(uid);
2、联合主键
CREATE TABLE user(
uid INT,
uname VARCHAR(10),
address VARCHAR(20),
PRIMARY KEY(uid,uname)
)
3、删除主键
ALTER TABLE USER DROP PRIMARY KEY;
三、MySql常用函数全部汇总
如果错过太阳时你流了泪,那你也要错过群星了。
在所有的矛盾中,要优先解决主要矛盾,其他矛盾也就迎刃而解。
不要做个笨蛋,为失去的郁郁寡欢,聪明的人,已经找到了解决问题的办法,或正在寻找。
在所有的矛盾中,要优先解决主要矛盾,其他矛盾也就迎刃而解。
不要做个笨蛋,为失去的郁郁寡欢,聪明的人,已经找到了解决问题的办法,或正在寻找。