1.登录MySQL

命令:

mysql -u -root -p



命令:mysql -u用户名 -p

键入命令mysql -uroot -p, 回车后提示你输入密码。然后回车即可进入到mysql中了,mysql的提示符是:

mysql>



测试:

MySQL 创建测试表 mysql测试语句_mysql

遇到了这个问题:这个是密码输入错误问题。还有可能是其他问题。google之

然后我们正常启动MySQL:

MySQL 创建测试表 mysql测试语句_数据库_02

2.操作数据库


登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。


     1.显示数据库列表:

show databases;




缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。


显示数据库中的tables:

use  mysql;
show tables;






MySQL 创建测试表 mysql测试语句_数据库_03


3.显示数据表的结构:

describe  db;


MySQL 创建测试表 mysql测试语句_ide_04



4.建库与删库:

create database 库名;
drop database 库名;



可以看到如下的响应:


Query OK,1 row affected (0.00sec)


如果没有相应,请确认加了分号。
5.创建新用户


grant命令和revoke命令用来授予和取消用户的权限。权限分4个级别:


全局,数据库,表,列。


格式:grant 权限  (权限由逗号分开)

            on 数据库.*(如果将新权限用于所有数据库或者表就用  *.*,应用于所有数据库。以dbname.*指定数据库中所有的表dbname.tablename表示数据库中的某一个表) 

            to 用户名@登录主机 identified by "密码"

           with  grant option(表示允许指定用户像别人授予自己的权限)

revoke命令:

         revoke   权限

         on  数据库

         from  user_name

例子:

如,增加一个用户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 "";

用户的权限:  select ,delete , insert ,update ,index ,alter ,create ,drop

MySQL 创建测试表 mysql测试语句_mysql_05

可以看到后边的输入是错误的:原因是打错了update,遇到错误时先看看自己有没有拼写错误。


创建一个没有权限的常规用户:


mysql> grant usage
    -> on books.*
    -> to sally identified by "magic123";


继续赋予sally一些适当的权限:


mysql ->grant select,delete,update,delete,index,alter,create,drop
    -> on books.*
    -> to sally;


减少权限:


mysql> revoke alter ,create,drop
    -> on books.*
    -> from sally;


撤销所有权限:


mysql> revoke all on books.* from sally;


测试结果:




MySQL 创建测试表 mysql测试语句_MySQL 创建测试表_06




创建数据库表:


create table  tablename(columns);


例子:


->  create table books
     -> (isbn char(13) not null primary key,
     -> author char(50),
     -> title char(100),
     -> price float(4,2)
     -> );


创建一个有两个主键的:

-> create table order_items
    -> (orderid int unsigned not null,
    -> isbn char(13) not null,
    -> quantity tinyint unsigned,
    -> primary key(orderid,isbn)       两个主键要以这种方式创建
    -> );



MySQL 创建测试表 mysql测试语句_数据库_07


用show 和describe查看数据库表:


show tables;
describe 表名;


MySQL 创建测试表 mysql测试语句_ide_08




查看用户拥有的权限。


show grants for bookorama;


MySQL 创建测试表 mysql测试语句_ide_09




可以看到用户bookorama的权限很多


  


使用describe 获取列的信息。


describe table[column];


MySQL 创建测试表 mysql测试语句_MySQL 创建测试表_10





创建索引

索引被创建于已有的表中,它可使对行的定位更快速更有效。可以在表格的一个或者多个列上创建索引,每个索引都会被起个名字。用户无法看到索引,它们只能被用来加速查询。

注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常用于搜索的列上面创建索引。

唯一的索引 (Unique Index)

在表格上面创建某个一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。

CREATE UNIQUE INDEX 索引名称
ON 表名称 (列名称)

"列名称" 规定你需要索引的列。

简单的索引

在表上创建一个简单的索引。当我们省略关键词 UNIQUE 时,就可以使用重复的值。

CREATE INDEX 索引名称
ON 表名称 (列名称)

"列名称" 规定你需要索引的列。

本例会创建一个简单的索引,名为 "PersonIndex",在 Person 表的 LastName 字段:

CREATE INDEX PersonIndex
ON Person (LastName)

如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC

CREATE INDEX PersonIndex
ON Person (LastName DESC)

假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

CREATE INDEX PersonIndex
ON Person (LastName, FirstName)




后续待添加。