MySql入门基础讲解
前几天在学习Java连接数据库的时候,看到了Mysql数据库。关于Mysql数据库的历史,我就不再这里啰嗦了,直接进入正题吧。
首先来说说它的安装,由于安装则十分的简单,这里我就不再介绍了,直接点击下一步就可以。一般情况下,不要更改它的安装路径。直接选择默认就可以了。在安装的最后由于mysql默认选择的时3306的端口,假如你的电脑的端口被使用的话,那就要更改端口了。要不然连接数据库的时候会出错的,。安装过程十分的简单,这里就不再多说了。
2,其次我们来说下如何排至mysql的环境变量.
1.首先进入Mysql的安装目录下面.我的是安装在c盘下面,首先点击我的电脑---->属性--->高级特性--->
----------->如图所示.z最后找到系统变量里面的环境
变量--------------->path,将mysql的安装路径添加到下面就可以了。
在使用MySQL之前我们必须首先的要启动MySQL的服务程序,那么如何启动MySQL的服务了,下面介绍两种方法.
1.手动启动mysql服务程序。打开控制面板---->点击管理工具----->点击服务----->找到mysql服务名------>双击打开就可以了。这样就启动了mysql的服务了。
2.其次就是使用命令行的方式启动该服务了。但是这里一定要主要,该命令行一定要在管理员的权限下面进行,否则会抛出
找不到该服务的异常。一般的情况下面直接进入windos----system32下面有一个cmd.exe的文件,直接右点击用管理员的权限来运行就可以了。但是这样做非常的麻烦,直接在 注册表里面修改就可以了。然后每次打开cmd的时候就是按照管理员的权限
在运行的。注意在使用命令启动mysql的时候,一定要看看mysql的全名是什么,要不然是找不到服务的。
如下截图,表示Mysql服务已经启动成功了。
说明请求的服务已经启动了.
接下来就是对mysql数据库的一些操作了。
1.首先来看看如何进入MySQL,使用命令如下
表示已经进入到了mysql里面。在进入的时候,会要求我们输入密码,MySQL默认的管理员是root,也就是跟用户权限
该权限的级别是最高的。在次会提示要你输入密码,该密码就是你设置的密码。在安装mysql的时候设置的密码.
1.来介绍下mysql的命令。
1.show databases;显示所有的数据库,注意结尾有一个分号,表示的就是该sql语句的结束.
2.create database name;创建数据库
3.use database;进入数据库.
4.drop database name 直接删除数据库,不需要提示.
5.show tables;显示数据库表,因为一个数据库会有很多张表,所以这里就是加了一个复数s
6.desc tablesname;查看表的结构。
7.mysqladmin drop database 删除数据库之前有提示.
8.select verdion(),current_date;显示当前mysql的版本和日期。
9.flush privileges 刷新mysql数据库。
MySQL下的命令。常用的命令。
首先来看看mysql的启动和停止。
net start Mysql80 启动mysql服务。
停止Mysql服务使用net stop mysql
2.使用sttus;来查看MySQL的状态信息,来看看截图.
从上面可以看到MySQL的链接id 以及版本信息等等,自己可以去尝试下。
3.显示某一个表创建的全部信息
使用 show create table table_name(也就是表名。)
可以看到里面的一些sql语句等等,
查看表的属性以及一些字段的描述。desc +table_name(表名)就可以了。
三 。MySQL中的sql语句,我们可以看到在MySQL里面是部分大小写的,也就说不管大写还是
小写都是一样的。
1.数据库的创建 create database +数据库的名字;来创建一个数据库.
2.删除数据库 drop database +数据库名字,删除的时候可以判断是否存在 代码如下 drop database if exits db-name
3.创建数据库表 代码如下 create table db_name 比如 create table mytable(id int ,username char(20));
4.删除表 drop table table_name 比如 drop table mytable;
5.添加数据 insert into 表名(字段1,字段2,......)values(值1,值2.。。。。。)
例如 insert into mytable (id,username) values (1,’zhangsan’);
6.查询表中的所有的数据 select * from table_name
7.查询指定条件的数据 select 字段1 , 字段2 from table_name;
比如 例 : select id,username from mytable where id=1 order by desc;多表查询语句-
8.更新指定数据 , 更新某一个字段的数据(注意,不是更新字段的名字)
Update table_name set 字段名=’新值’ [, 字段2 =’新值’ , …..][where id=id_num] [order by 字段 顺序]
例 : update mytable set username=’lisi’ where id=1;
Order语句是查询的顺序 , 如 : order by id desc(或asc) , 顺序有两种 : desc倒序(100—1,即从最新数据往后查询),asc(从1-100),Where和order语句也可用于查询select 与删除delete
9.删除表里面的信息
删除整个表中的信息 : delete from table_name;
10. 删除表中指定条件的语句 : delete from table_name where 条件语句 ; 条件语句如 : id=3;
11.一次可以创建多个数据库用户如:
CREATE USER username1 identified BY ‘password’ , username2 IDENTIFIED BY ‘password’…. .
12.查看数据库当前引擎
SHOW CREATE TABLE table_name;
SQL语句运用实例.
--1 建users表
create table users (id int primary key auto_increment,nikename varchar(20) not null unique,password varchar(100) not null,address varchar(200), reg_date timestamp not null default CURRENT_TIMESTAMP);
--2 建articles表,在建表时设置外键
create table articles (id int primary key auto_increment,content longtext not null,userid int,constraint foreign key (userid) references users(id) on delete set null);
--2.1 建articles表,建表时不设置外键
create table articles (id int primary key auto_increment,content longtext not null,userid int);
--2.2 给articles表设置外键
alter table articles add constraint foreign key (userid) references users(id) on delete set null; .
--3. 向users表中插入数据,同时插入多条
insert into users (id,nikename,password,address) values (1,'lyh1','1234',null),(10,'lyh22','4321','湖北武汉'),(null,'lyh333','5678', '北京海淀');
--5. 进行多表查询,选择users表中ID=10的用户发布的所有留言及该用户的所有信息
select articles.id,articles.content,users.* from users,articles where users.id=10 and articles.userid=users.id order by articles.id desc;
--6. 查看数据库引擎类型
show create table users;
--8. 同表查询,已知一个条件的情况下.查询ID号大于用户lyh1的ID号的所有用户
select a.id,a.nikename,a.address from users a,users b where b.nikename='lyh1' and a.id>b.id;
------也可写成
select id,nikename,address from users where id>(select id from users where nikename='lyh1');
mysql> select * from users;
+--------+----------+
| userid | username |
+--------+----------+
| 2 | ???? |
| 3 | ???? |
| 4 | ?í?ù |
+--------+----------+
3 rows in set (0.00 sec)
表中的中文字符位乱码。
解决办法:
使用命令:
mysql> status;
--------------
mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
Connection id: 8
Current database: test
Current user: [email protected]
SSL: Not in use
Using delimiter: ;
Server version: 5.0.45-community-nt MySQL Community Edition (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 7 hours 39 min 19 sec
Threads: 2 Questions: 174 Slow queries: 0 Opens: 57 Flush tables: 1 Open ta
bles: 1 Queries per second avg: 0.006
--------------
查看mysql发现Server characterset,Db characterset的字符集设成了latin1,所以出现中文乱码。
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| users |
+----------------+
1 row in set (0.00 sec)
更改表的字符集。
mysql> alter table users character set GBK;
Query OK, 3 rows affected (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 0
12 查看表的结构:
mysql> show create users;
13. mysql> desc users; 显示表的详细信息.
14.退出mysql操作界面使用quit或者是exit。你也可以用control-D退出。
4、第一条命令
mysql> select version(),current_date();
+----------------+-----------------+
| version() | current_date() |
+----------------+-----------------+
| 3.23.25a-debug | 2001-05-17 |
+----------------+-----------------+
1 row in set (0.01 sec)
mysql>
练习,看看下面的输出分别是什么
mysql>Select (20+5)*4;
mysql>Select (20+5)*4,sin(pi()/3);
mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名为Result)
结果很是出人分意外,mysql语句有点类似一门编程语句,通过表达式可以实现数据的运算.
16一行多条命令.
mysql> SELECT USER(); SELECT NOW();
17.
7、显示当前存在的数据库
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 row in set (0.06 sec)
mysql>
18.
8、选择数据库并显示当前选择的数据库
mysql> USE mysql
Database changed
mysql>
(USE 和 QUIT 命令不需要分号结束。)
mysql> select database();
20.9、显示当前数据库中存在的表
mysql> SHOW TABLES;
21.显示表里面的内容。
显示表(db)的内容
mysql>select * from db;
11、命令的取消
当命令输入错误而又无法改变(多行语句情形)时,只要在分号出现前就可以用 c来取消该条命令
mysql> select
-> user()
-> c
mysql>
这是一些最常用的最基本的操作命令,通过多次练习就可以牢牢掌捂了
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。
二、显示命令
1、显示当前数据库服务器中的数据库列表:
mysql> SHOW DATABASES;
注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示数据库中的数据表:
mysql> USE 库名;
mysql> SHOW TABLES;
3、显示数据表的结构:
mysql> DESCRIBE 表名;
4、建立数据库:
mysql> CREATE DATABASE 库名;
5、建立数据表:
mysql> USE 库名;
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
6、删除数据库:
mysql> DROP DATABASE 库名;
7、删除数据表:
mysql> DROP TABLE 表名;
8、将表中记录清空:
mysql> DELETE FROM 表名;
9、显示表中的记录:
mysql> SELECT * FROM 表名;
10、往表中插入记录:
mysql> INSERT INTO 表名 VALUES (”hyq”,”M”);
11、更新表中数据:
mysql-> UPDATE 表名 SET 字段名1=’a',字段名2=’b’ WHERE 字段名3=’c';
12、用文本方式将数据装入数据表中:
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;
13、导入.sql文件命令:
mysql> USE 数据库名;
mysql> SOURCE d:/mysql.s
14、命令行修改root密码:
mysql> UPDATE mysql.user SET password=PASSWORD(’新密码’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;
15、显示use的数据库名:
mysql> SELECT DATABASE();
三、一个建库和建表以及插入数据的实例
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′);
输出的结果如下截图.
以上就是一些数据库的基本的操作了。注意平时的时候多使用就可以,掌握这些就够了.
sql语句是一门很复杂的语言。学完了需要时间,其实也没必要。以后慢慢的学.