做网站需要一些什么工具,企业网站模板专业网,wordpress 国内模板,郑州最近新闻事件文章目录前言一、连接到 MySQL 数据库1.1、连接到本机上的 MySQL1.2、连接到远程主机上的 MySQL二、退出 MySQL 命令三、修改 MySQL 密码3.1、先给 root 用户加个密码 ab123.2、再将 root 用户的密码改为 djg345四、增加新用户4.1、增加一个可以在任何主机上登录用户 test1密码为 abc并对所有数据库有查询、插入、修改、删除的权限4.2、增加一个只可以在 localhost 上登录用户 test2密码为 abc并可以对数据库 mydb 进行查询、插入、修改、删除的操作五、创建新的数据库六、显示存在的数据库与编码设置七、删除数据库八、连接数据库九、查看当前选择的数据库9.1、查看显示 MySQL 的版本9.2、查看显示当前时间9.3、查看显示当前年月日9.4、查看显示字符串9.5、当计算器用9.6、串接字符串十、创建数据表十一、查看表的字段信息十二、删除数据表十三、在表中插入数据13.1、设置某些属性的值为空13.2、为指定列插入数据十四、查询表中的数据14.1、查询所有行数据14.2、查询前几行数据分页查询十五、删除表中数据十六、修改表中数据16.1、单表的 MySQL UPDATE 语句16.2、多表的 MySQL UPDATE 语句十七、增加字段17.1、增加索引17.1.1、加主关键字的索引17.1.2、加唯一限制条件的索引17.2、删除某个索引17.3、对字段的操作17.3.1、增加字段17.3.2、修改原字段名称及类型17.3.3、删除字段十八、修改表名十九、修改表的定义二十、备份数据库20.1、导出整个数据库20.2、在命令行导出 MySQL 数据到 excel 表20.3、导出一个表20.4、导出一个数据库结构20.5、带语言参数导出二十一、建库和建表的实例21.1、实例一21.2、实例二总结前言 MySQL 是一种开放源代码的关系型数据库管理系统RDBMS使用最常用的数据库管理语言--结构化查询语言SQL进行数据库管理。MySQL 是开放源代码的因此任何人都可以在 General Public License 的许可下下载并根据个性化的需要对其进行修改。MySQL 因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下MySQL 是管理内容最好的选择。 前文回顾《MySQL 入门教程初学者一学就会零基础 MySQL 安装及增删改查入门》
一、连接到 MySQL 数据库
连接到 MySQL 数据库基本形式如下
mysql -h主机地址 -u用户名 p用户密码1.1、连接到本机上的 MySQL
首先打开 DOS 窗口然后进入目录 mysql\bin再键入命令 mysql -u root -p回车后提示你输密码。注意用户名前可以有空格也可以没有空格但是密码前必须没有空格否则让你重新输入密码。
如果刚安装好 MySQL超级用户 root 是没有密码的故直接回车即可进入到 MySQL 中了MySQL 的提示符如下
mysql1.2、连接到远程主机上的 MySQL
假设远程主机的 IP 为110.110.110.110用户名为 root密码为 abcd123则输入如下命令
mysql -h110.110.110.110 -u root -pabcd123注意u 与 root 之间可以不用加空格其它也一样。
二、退出 MySQL 命令
退出 MySQL实现命令如下
exit三、修改 MySQL 密码
修改 MySQL 密码基本形式如下
mysqladmin -u用户名 -p旧密码 password 新密码3.1、先给 root 用户加个密码 ab12
首先在 DOS 下进入目录 mysql\bin然后输入如下命令
mysqladmin -u root password ab12注意因为开始时 root 没有密码所以 -p 旧密码 一项就可以省略了。
3.2、再将 root 用户的密码改为 djg345
mysqladmin -u root -pab12 password djg345四、增加新用户
注意和上面不同下面的因为是 MySQL 环境中的命令所以后面都带一个分号作为命令结束符。
增加新用户基本形式如下
grant select on 数据库.* to 用户名登录主机 identified by “密码”;4.1、增加一个可以在任何主机上登录用户 test1密码为 abc并对所有数据库有查询、插入、修改、删除的权限
首先用 root 用户连入MySQL然后键入以下命令
grant select,insert,update,delete on *.* to [emailtest1”%]test1”%[/email]” Identified by “abc”;注意增加的用户是十分危险的你想如某个人知道 test1 的密码那么他就可以在 internet 上的任何一台电脑上登录你的 MySQL 数据库并对你的数据可以为所欲为了解决办法见 4.2。
4.2、增加一个只可以在 localhost 上登录用户 test2密码为 abc并可以对数据库 mydb 进行查询、插入、修改、删除的操作
localhost 指本地主机即 MySQL 数据库所在的那台主机这样用户即使用知道 test2 的密码他也无法从 internet 上直接访问数据库只能通过 MySQL 主机上的 web 页来访问了。
grant select,insert,update,delete on mydb.* to [emailtest2localhost]test2localhost[/email] identified by “abc”;如果你不想 test2 有密码可以再打一个命令将密码消掉实现命令如下
grant select,insert,update,delete on mydb.* to [emailtest2localhost]test2localhost[/email] identified by “”;五、创建新的数据库
创建数据库之前要先连接 MySQL 服务器基本形式如下
create database 数据库名;例如创建一个名为 xhkdb 的数据库实现命令如下
mysql create database xhkdb;例如创建数据库并分配用户实现命令如下
CREATE DATABASE 数据库名;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名localhost IDENTIFIED BY 密码;
SET PASSWORD FOR 数据库名localhost OLD_PASSWORD(密码);依次执行 3 个命令完成数据库创建在这里中文 “密码”和“数据库”是户自己需要设置的。
六、显示存在的数据库与编码设置
显示存在的数据库实现命令如下注意最后有个 s
show databases;为了不再显示的时候乱码要修改数据库默认编码我们以 GBK 编码页面为例进行说明
修改 MySQL 的配置文件my.ini 里面修改 default-character-setgbk。代码运行时修改
①Java 代码
jdbc:mysql://localhost:3306/test?useUnicodetruecharacterEncodinggbk;②PHP 代码
header(Content-Type:text/html;charsetgb2312);③C 语言代码
int mysql_set_character_set( MYSQL * mysql, char * csname);该函数用于为当前连接设置默认的字符集。字符串 csname 指定了1个有效的字符集名称。连接校对成为字符集的默认校对。该函数的工作方式与 SET NAMES 语句类似但它还能设置mysql- charset的值从而影响了由mysql_real_escape_string() 设置的字符集。
七、删除数据库
删除数据库基本形式如下
drop database 数据库名;例如删除名为 xhkdb 的数据库实现命令如下
mysql drop database xhkdb;例如删除一个已经确定存在的数据库 drop_database实现命令如下
mysql drop database drop_database;
Query OK, 0 rows affected (0.00 sec)例如删除一个不确定存在的数据库实现命令如下
mysql drop database drop_database;
ERROR 1008 (HY000): Cant drop database drop_database; database doesnt exist //发生错误不能删除drop_database数据库该数据库不存在。
mysql drop database if exists drop_database;
Query OK, 0 rows affected, 1 warning (0.00 sec) //产生一个警告说明此数据库不存在
mysql create database drop_database;
Query OK, 1 row affected (0.00 sec)
mysql drop database if exists drop_database; //if exists 判断数据库是否存在不存在也不产生错误
Query OK, 0 rows affected (0.00 sec)八、连接数据库
连接数据库基本形式如下
use 数据库名;例如如果 xhkdb 数据库存在尝试存取它实现代码如下
mysql use xhkdb;这个时候屏幕会出现如下提示
Database changeduse 语句可以通告 MySQL 把 db_name 数据库作为默认当前数据库使用用于后续语句。该数据库保持为默认数据库直到语段的结尾或者直到发布一个不同的 USE 语句
mysql USE db1;
mysql SELECT COUNT(*) FROM mytable; # selects from db1.mytable
mysql USE db2;
mysql SELECT COUNT(*) FROM mytable; # selects from db2.mytable使用 USE 语句为一个特定的当前的数据库做标记不会阻碍您访问其它数据库中的表。下面的例子可以从 db1 数据库访问作者表并从 db2 数据库访问编辑表命令如下
mysql USE db1;
mysql SELECT author_name,editor_name FROM author,db2.editor
- WHERE author.editor_id db2.editor.editor_id;可能有些同学会有疑问连接以后怎么退出其实不用退出来use 数据库后使用 show databases 就能查询所有数据库如果想跳到其他数据库用 use 其他数据库名字 就可以了。
九、查看当前选择的数据库
查看当前选择的数据库实现命令如下
mysql select database();MySQL 中 SELECT 命令类似于其他编程语言里的 print 或者 write你可以用它来显示一个字符串、数字、数学表达式的结果等等。那么我们如何使用 MySQL 中 SELECT命令的特殊功能
9.1、查看显示 MySQL 的版本
我们可以使用 select 命令查看显示 MySQL 的版本实现命令如下
mysql select version();
-----------------------
| version() |
-----------------------
| 6.0.4-alpha-community |
-----------------------
1 row in set (0.02 sec) 9.2、查看显示当前时间
我们可以使用 select 命令查看显示当前时间实现命令如下
mysql select now();
---------------------
| now() |
---------------------
| 2009-09-15 22:35:32 |
---------------------
1 row in set (0.04 sec) 9.3、查看显示当前年月日
我们可以使用 select 命令查看显示当前年月日实现命令如下
SELECT DAYOFMONTH(CURRENT_DATE);
--------------------------
| DAYOFMONTH(CURRENT_DATE) |
--------------------------
| 15 |
--------------------------
1 row in set (0.01 sec) SELECT MONTH(CURRENT_DATE);
---------------------
| MONTH(CURRENT_DATE) |
---------------------
| 1 |
---------------------
1 row in set (0.00 sec) SELECT YEAR(CURRENT_DATE);
--------------------
| YEAR(CURRENT_DATE) |
--------------------
| 2020 |
--------------------
1 row in set (0.00 sec) 9.4、查看显示字符串
我们可以使用 select 命令查看显示字符串实现命令如下
mysql SELECT welecome to my blog!;
----------------------
| welecome to my blog! |
----------------------
| welecome to my blog! |
----------------------
1 row in set (0.00 sec) 9.5、当计算器用
我们可以使用 select 命令当计算器用实现命令如下
select ((4 * 4) / 10 ) 25;
----------------------
| ((4 * 4) / 10 ) 25 |
----------------------
| 26.60 |
----------------------
1 row in set (0.00 sec) 9.6、串接字符串
我们可以使用 select 命令串接字符串实现命令如下
select CONCAT(f_name, , l_name) AS Name from employee_data where title Marketing Executive;
---------------
| Name |
---------------
| Monica Sehgal |
| Hal Simlai |
| Joseph Irvine |
---------------
3 rows in set (0.00 sec) 注意这里用到 CONCAT() 函数用来把字符串串接起来。另外我们还用到以前学到的 AS 给结果列 CONCAT(f_name, , l_name) 起了个列别名。
十、创建数据表
创建数据表基本形式如下
create table 表名 ( 字段名1 类型1 [,..字段名n 类型n]);例如建立一个名为 MyClass 的表具体如下表所示
字段名数字类型数据宽度是否可以为空是否主键自动增加默认值idint4否primary keyauto_increment0namechar20否sexint4否degreedouble16是
实现命令如下
mysql create table MyClass( id int(4) not null primary key auto_increment,name char(20) not null,sex int(4) not null default 0,degree double(16,2));十一、查看表的字段信息
查看表的字段信息基本形式如下
mysql describe table_name;十二、删除数据表
删除数据表基本形式如下
drop table 表名;例如删除表名为 MyClass 的表实现命令如下
mysql drop table MyClass;注意DROP TABLE 用于取消一个或多个表。您必须有每个表的 DROP 权限。所有的表数据和表定义会被取消所以使用本语句要小心
注意
对于一个带分区的表DROP TABLE 会永久性地取消表定义取消各分区并取消储存在这些分区中的所有数据。DROP TABLE 还会取消与被取消的表有关联的分区定义.par文件。对与不存在的表使用 IF EXISTS 用于防止错误发生。当使用 IF EXISTS 时对于每个不存在的表会生成一个NOTE。RESTRICT 和 CASCADE 可以使分区更容易。目前RESTRICT 和 CASCADE 不起作用。
十三、在表中插入数据
在表中插入数据基本形式如下
insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);说明其中 [] 内的内容是可选的当向表中所有列插入数据时并且插如的数据值和表中列的定义顺序完全相同时可以缺省[]。
例如往表 MyClass 中所有列插入二条的记录这二条记录表示编号为 1 的名为 Tom 的成绩为 96.45编号为 2 的名为 Joan 的成绩为 82.99编号为 3 的名为 Wang 的成绩为 96.5实现命令如下
mysql insert into MyClass values(1,Tom,1,96.45),(2,Joan,1,82.99), (3,Wang, 0,96.59);按回车键确认后若提示 Query Ok, 1 row affected (0.05 sec) 表示数据插入成功。若插入失败请检查是否已选择需要操作的数据库。
13.1、设置某些属性的值为空
在插入的元组中设置某些属性的值为空基本形式如下
insert into 表名 values(值1值2NULL值3…);表明插入的记录的第三列的取值为 NULL。
13.2、为指定列插入数据
有时我们要为指定列插入数据或者不按照列的顺序进行插入则表名后必须制定要插入的列名基本形式如下:
insert into student (Sno,Sname, Ssex) values(‘95007’,’孙丽华’, ‘女’);这时 student 中没有插入具体值的属性的取值为空默认 NULL。
十四、查询表中的数据
14.1、查询所有行数据
查询所有行数据基本形式如下
select 字段1字段2... from 表名 where 表达式 ;例如查看表 MyClass 中所有数据实现命令如下 mysql select * from MyClass;14.2、查询前几行数据分页查询
例如查看表 MyClass 中前 2 行数据实现命令如下
mysql select * from MyClass order by id limit 0,2;说明表的元组从 0 开始编号limit 的格式为 limit a,b表明从第 a 个元组开始显示总共显示 b 个元组。
十五、删除表中数据
删除表中数据基本形式如下
delete from 表名 where 表达式;说明select 一般配合 where 使用以查询更精确更复杂的数据。
例如删除表 MyClass 中编号为 1 的记录实现命令如下
mysql delete from MyClass where id1;例如下面以 PHP 代码为例删除 “Persons” 表中所有 LastName‘Griffin’ 的记录在删除之前表具体如下所示
FirstNameLastNameAgePeterGriffin35GlennQuagmire33
实现命令如下
?php $con mysql_connect(localhost,peter,abc123); if (!$con) {die(Could not connect: . mysql_error()); } mysql_select_db(my_db, $con); mysql_query(DELETE FROM Persons WHERE LastNameGriffin); mysql_close($con);
?在这次删除之后表具体如下表所示
FirstNameLastNameAgeGlennQuagmire33
十六、修改表中数据
修改表中数据基本形式如下
update 表名 set 字段新值,… where 条件;例如
mysql update MyClass set nameMary where id1;16.1、单表的 MySQL UPDATE 语句
单表的 MySQL UPDATE 语句基本形式如下
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1expr1 [, col_name2expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]16.2、多表的 MySQL UPDATE 语句
多表的 MySQL UPDATE 语句基本形式如下
UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1expr1 [, col_name2expr2 ...] [WHERE where_definition]UPDATE 语法可以用新值更新原有表行中的各列。SET 子句指示要修改哪些列和要给予哪些值。WHERE 子句指定应更新哪些行。如果没有 WHERE 子句则更新所有的行。如果指定了 ORDER BY 子句则按照被指定的顺序对行进行更新。LIMIT 子句用于给定一个限值限制可以被更新的行的数目。
十七、增加字段
增加字段基本形式如下
alter table 表名 add字段 类型 其他;例如在表 MyClass 中添加了一个字段 passtest类型为 int(4)默认值为 0实现命令如下
mysql alter table MyClass add passtest int(4) default 0;17.1、增加索引
增加索引基本形式如下
mysql alter table 表名 add index 索引名 (字段名1[字段名2 …]);例如
mysql alter table employee add index emp_name (name);17.1.1、加主关键字的索引
加主关键字的索引基本形式如下
mysql alter table 表名 add primary key (字段名);例如
mysql alter table employee add primary key(id);17.1.2、加唯一限制条件的索引
加唯一限制条件的索引基本形式如下
mysql alter table 表名 add unique 索引名 (字段名);例如
mysql alter table employee add unique emp_name2(cardnumber);17.2、删除某个索引
删除某个索引基本形式如下
mysql alter table 表名 drop index 索引名;例如
mysqlalter table employee drop index emp_name;17.3、对字段的操作
17.3.1、增加字段
增加字段基本形式如下
mysql ALTER TABLE table_name ADD field_name field_type;17.3.2、修改原字段名称及类型
修改原字段名称及类型基本形式如下
mysql ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;17.3.3、删除字段
删除字段基本形式如下
mysql ALTER TABLE table_name DROP field_name;十八、修改表名
修改表名基本形式如下
rename table 原表名 to 新表名;例如将表 MyClass 名字更改为 YouClass实现命令如下
mysql rename table MyClass to YouClass;RENAME TABLE 在 MySQL 3.23.23 中被加入。当你执行 RENAME 时你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限以及对新表的 CREATE 和 INSERT 权限。如果在多表更名中MySQL 遭遇到任何错误它将对所有被更名的表进行倒退更名将每件事物退回到最初状态。
十九、修改表的定义
MySQL 用 alter 关键字修改表名列名列类型添加表列删除表列。
1)alter table 旧表名 rename 新表名; --修改表名
2)alter table旧表名add column 新列名 列的类型; --添加表列
3)alter table旧表名drop column 列名; --删除表列
4)alter table旧表名modify 列名 要修改的类型 --修改表列类型
或alter table test change列名 列名 要修改的类型
5)alter table test change column 旧列名 新列名 列的类型--修改表列名二十、备份数据库
20.1、导出整个数据库
命令在 DOS的[urlfile://\mysql\bin] 目录下执行导出文件默认是存在 mysql\bin 目录下实现命令如下
mysqldump -u 用户名 –p用户密码 数据库名 导出的文件名
mysqldump -u user_name -p123456 database_name outfile_name.sql 句末没有分号20.2、在命令行导出 MySQL 数据到 excel 表
有时候需要将 MySQL 的数据导出成 excel这很简单无需第三方工具直接 MySQL 命令行就自带了这样的功能。命令需在进入 MySQL在 MySQL 提示符 mysql 下操作并选定表所属的数据库基本形式如下
SELECT * FROM table_name into outfile D:\\nowamagic.xls;说明双斜杠是带转义识别目录。
当然也可以加入筛选条件将特定的列筛选出来导出成 excel比如
SELECT Sname, Sno FROM Student WHERE Ssex 男 into outfile D:\\Student.xls;注意如果你的数据是 utf-8 编码可能生成的 excel 文件直接打开会出现乱码这不要紧用记事本打开以 ANSI 编码格式另存一下就 OK 了。
20.3、导出一个表
导出一个表基本形式如下
mysqldump -u 用户名 -p 数据库名 表名 导出的文件名
mysqldump -u user_name -p database_name table_name outfile_name.sql20.4、导出一个数据库结构
导出一个数据库结构基本形式如下
mysqldump -u user_name -p -d –add-drop-table database_name outfile_name.sql说明-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table。
20.5、带语言参数导出
带语言参数导出基本形式如下
mysqldump -uroot -p –default-character-setlatin1 –set-charsetgbk –skip-opt database_name outfile_name.sql例如将 aaa 库备份到文件 back_aaa 中
[roottest1 root]# cd /home/data/mysql
[roottest1 mysql]# mysqldump -u root -p --opt aaa back_aaa二十一、建库和建表的实例
21.1、实例一
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(id int(3) auto_increment not null primary key,name char(10) not null,address varchar(50) default ‘深圳’,year date
); //建表结束//以下为插入字段
insert into teacher values(”,’allen’,大连一中’,1976-10-10′);
insert into teacher values(”,’jack’,大连二中’,1975-12-23′);如果你在 MySQL 提示符键入上面的命令也可以但不方便调试。
你可以将以上命令原样写入一个文本文件中假设为 school.sql然后复制到 c:\ 下并在 DOS 状态进入目录[urlfile://\mysql\bin]\mysql\bin[/url]然后键入以下命令
mysql -uroot -p密码 c:\\school.sql如果成功空出一行无任何显示如有错误会有提示。以上命令已经调试你只要将 // 的注释去掉即可使用。
或者进入命令行后使用 mysql source c:\\school.sql; 也可以将 school.sql 文件导入数据库中。
21.2、实例二
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(id int(3) auto_increment not null primary key,name char(10) not null,address varchar(50) default 深圳,year date
); //建表结束//以下为插入字段
insert into teacher values(,glchengang,深圳一中,1976-10-10);
insert into teacher values(,jack,深圳一中,1975-12-23);说明
将 ID 设为长度为 3 的数字字段int(3)并让它每个记录自动加一auto_increment并不能为空not null而且让它成为主字段 primary key。将 NAME 设为长度为 10 的字符字段。将 ADDRESS 设为长度 50 的字符字段而且缺省值为深圳。将 YEAR 设为日期字段。 总结 本文系统的总结了 MySQL 数据库的增删改查高级命令并且对于开发中最常见的错误做了总结。同时附了两个案例供大家参考其他的关于 MySQL 数据库的文章大家可以移步我的专栏查看。 我是白鹿一个不懈奋斗的程序猿。望本文能对你有所裨益欢迎大家的一键三连若有其他问题、建议或者补充可以留言在文章下方感谢大家的支持