MySql基础讲解

Posted 维尼的木屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySql基础讲解相关的知识,希望对你有一定的参考价值。

       前几天在学习Java连接数据库的时候,看到了mysql数据库。关于Mysql数据库的历史,我就不再这里啰嗦了,直接进入正题吧。

1.安装方法       

首先来说说它的安装,由于安装则十分的简单,这里我就不再介绍了,直接点击下一步就可以。一般情况下,不要更改它的安装路径。直接选择默认就可以了。在安装的最后由于mysql默认选择的是3306的端口,假如你的电脑的端口被使用的话,那就要更改端口了。要不然连接数据库的时候会出错的,。安装过程十分的简单,这里就不再多说了。

2.mysql的环境变量.

(1)首先进入Mysql的安装目录下面.我的是安装在c盘下面,首先点击我的电脑---->属性--->高级特性--->

----------->如图所示.最后找到系统变量里面的环境

变量--------------->path,将mysql的安装路径添加到下面就可以了。

在使用MySQL之前我们必须首先的要启动MySQL的服务程序,那么如何启动MySQL的服务了,下面介绍两种方法.


1.手动启动mysql服务程序。打开控制面板---->点击管理工具----->点击服务----->找到mysql服务名------>双击打开就可以了。这样就启动了mysql的服务了。


2.其次就是使用命令行的方式启动该服务了。但是这里一定要主要,该命令行一定要在管理员的权限下面进行,否则会抛出


找不到该服务的异常。一般的情况下面直接进入windos----system32下面有一个cmd.exe的文件,直接右点击用管理员的权限来运行就可以了。但是这样做非常的麻烦,直接在 注册表里面修改就可以了。然后每次打开cmd的时候就是按照管理员的权限

在运行的。注意在使用命令启动mysql的时候,一定要看看mysql的全名是什么,要不然是找不到服务的。

如下截图,表示Mysql服务已经启动成功了。

MySql基础讲解

说明请求的服务已经启动了.

接下来就是对mysql数据库的一些操作了。

1.首先来看看如何进入MySQL,使用命令如下:

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基础讲解

从上面可以看到MySQL的链接id  以及版本信息等等,自己可以去尝试下。

3.显示某一个表创建的全部信息

使用  show  create table  table_name(也就是表名。)MySql基础讲解

可以看到里面的一些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.查看数据库当前引擎 

------------------------------------------------------------------------------

 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', '北京海淀');


--4. 进行多表查询,选择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; 


--5. 查看数据库引擎类型 

  show create table users; 


--6. 同表查询,已知一个条件的情况下.查询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: root@localhost 

  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 


 


7. 查看表的结构: 

  mysql> show create users; 


8..  mysql> desc users;  显示表的详细信息.


9.退出mysql操作界面使用quit或者是exit。你也可以用control-D退出。


10.第一条命令


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语句有点类似一门编程语句,通过表达式可以实现数据的运算.


11.一行多条命令.


mysql> SELECT USER(); SELECT NOW(); 


12.显示当前存在的数据库


mysql> show databases; 

+----------+ 

| Database | 

+----------+ 

| mysql | 

| test | 

+----------+ 

2 row in set (0.06 sec) 

mysql>


13.选择数据库并显示当前选择的数据库


mysql> USE mysql 

Database changed 

mysql> 

(USE 和 QUIT 命令不需要分号结束。) 

mysql> select database(); 


14.显示当前数据库中存在的表 

mysql> SHOW TABLES;


15.显示表里面的内容。


显示表(db)的内容 

mysql>select * from db;


 


16.命令的取消


当命令输入错误而又无法改变(多行语句情形)时,只要在分号出现前就可以用 c来取消该条命令


mysql> select 

-> user() 

-> c 

mysql>


这是一些最常用的最基本的操作命令,通过多次练习就可以牢牢掌捂了

今天关于数据库-Mysql的基础知识就先说到这里,如果有什么不懂的后台留言。明天将会讲解一些操作技巧。


以上是关于MySql基础讲解的主要内容,如果未能解决你的问题,请参考以下文章

MySQL基础篇(DDL,DML,DQL,DCL详细讲解)

MySQL基础讲解 day2

MySQL备份恢复基础知识及MySQLdump讲解

零基础学MySQL-- 详细讲解数据库中的常用函数

数据库基础:讲解MySQL索引的概念及数据库索引的应用[2]

Mysql基础第五天,Mysql简介