数据库学习笔记

基本语句学习

  1. 创建数据库
    CREATE DATABASE 数据库名;

  2. 删除数据库
    drop database <数据库名>;

  3. 创建数据库表
    CREATE TABLE table_name (column_name column_type);
    举例例如下:

			CREATE TABLE IF NOT EXISTS `runoob_tbl`(
			   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
			   `runoob_title` VARCHAR(100) NOT NULL,
			   `runoob_author` VARCHAR(40) NOT NULL,
			   `submission_date` DATE,
			   PRIMARY KEY ( `runoob_id` )
			)ENGINE=InnoDB DEFAULT CHARSET=utf8;

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。

  1. 删除数据表
    DROP TABLE table_name ;

  2. 删表数据方法
    如果要清空表中的所有记录,可以使用下面的两种方法:
      DELETE FROM table_name
      TRUNCATE TABLE table_name

  3. 插入数据

    INSERT INTO table_name ( field1, field2,...fieldN )
                   VALUE  ( value1, value2,...valueN );
    
举例如下
root@host# mysql -u root -p password;
Enter password:*******
mysql> use RUNOOB;
Database changed
mysql> INSERT INTO runoob_tbl 
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("学习 PHP", "菜鸟教程", NOW());
Query OK, 1 rows affected, 1 warnings (0.01 sec)
mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("学习 MySQL", "菜鸟教程", NOW());
Query OK, 1 rows affected, 1 warnings (0.01 sec)
mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("JAVA 教程", "RUNOOB.COM", '2016-05-06');
Query OK, 1 rows affected (0.00 sec)
mysql>

注意: 使用箭头标记 -> 不是 SQL 语句的一部分,它仅仅表示一个新行,如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写 SQL 语句,SQL 语句的命令结束符为分号 ;。
在以上实例中,我们并没有提供 runoob_id 的数据,因为该字段我们在创建表的时候已经设置它为 AUTO_INCREMENT(自动增加) 属性。 所以,该字段会自动递增而不需要我们去设置。实例中 NOW() 是一个 MySQL 函数,该函数返回日期和时间。

  1. 更新数据
    UPDATE table_name SET field1=new-value1, field2=new-value2 WHERE Clause]
    举例:
    mysql> UPDATE runoob_tbl SET runoob_title=‘学习 C++’ WHERE runoob_id=3;

  2. 数据库授权
    grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。

grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'
或者用:grant select, insert, update, delete on testdb.* to common_user@'%'
  1. grant 数据库开发人员,创建表、索引、视图、存储过程、函数等权限。
grant create on testdb.* to developer@'192.168.0.%';
grant alter on testdb.* to developer@'192.168.0.%';
grant drop on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 外键权限。
grant references on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 临时表权限。
grant create temporary tables on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 索引权限。
grant index on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 视图、查看视图源代码 权限。
grant create view on testdb.* to developer@'192.168.0.%';
grant show view on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 存储过程、函数 权限。
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
grant execute on testdb.* to developer@'192.168.0.%';
  1. 允许所有主机访问
mysql> use mysql; 
mysql> update user set host = '%' where user = 'root'; 
mysql> select host, user from user; 
mysql> flush privileges;
  1. 查看权限的方法
    show grants for root@localhost
  2. DDL(Data Definition Language)数据定义语言:

适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,Alter和Drop.
一、DDL(数据定义语言,Data Definition Language)

建库、建表、设置约束等:create\drop\alter
1、创建数据库:

create database IF NOT EXISTS hncu CHARACTER SET utf8;

2、创建表格:
use hncu;
create table IF NOT EXISTS stud(
id int,
name varchar(30),
age int
);

3、更改表结构(设置约束)
desc stud; //查看表结构
alter table stud drop column age;
alter table stud add column age int;

4、删除表、删除数据库
drop table stud;
drop database hncu;

二、DML (数据操纵语言,Data Manipulation Language )
主要指数据的增删查改: Select\delete\update\insert\call

select * from stud;
select name,age from stud; //查询指定的列
select name as 姓名, age as 年龄 from stud;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值