数据库技术: SQL,关系数据库标准

注意: 环境编码:  cmd客户端是固定的gbk编码  而php网页中,是该网页文件的编码(现在主流都是utf8)。 mysql> set names gbk;

命令行启动停止数据库:net start/stop mysql

登录方式:mysql -hlocalhost -uroot -p -P端口号  -h服务器地址  -u登录名 退出:quit或exit

显示数据库: show databases;

创建数据库:create database db1 charset utf8;

数据库的备份:mysqldump -h服务器名 -u登录名 -p数据库名 > 文件名 数据库的恢复:mysql -h服务器名 -u登录名 -p数据库名 < 文件名      // 没有登录数据库系统 备份:mysqldump -hlocalhost -uroot -p nunu > c:/nunu.sql

基础语法规定  注释: 1、#注释内容   2、-- 注释内容(--后有空格)   3、/*注释内容*/  语句行 :   默认情况下,以一个英文分号作为一条语句的结束1   mysql 可以人为设定语句结束符   delimiter 新的结束符

大小写:  mysql  本身不区分大小写  根据系统是否区分大小写

创建数据库: create database 数据库名 【charset  字符编码名称】 【collate 排序规则】

删除数据库:drop database 【if exists】数据库名; 其中:if exists是用于一种安全运行的考虑,如果数据库不存在不会报错。

修改数据库: alter database 数据库名  charset  新的编码  collate  新的排序名;

显示字符编码:show charset; 显示排序规则:show collation; 显示一个数据库的创建语句:show create database 数据库名;

进入数据库:use 数据库名;

PHP使用MySQL函数: //sql_php

$link=mysql_connect("数据库服务器地址","用户名","密码"); //连接数据库 mysql_query("set names 网页编码名");    //设定“连接编码”;    //也可以这样做,mysql_set_charset("网页文件编码名");

mysql_query("use 数据库名");     //选定要使用的数据库    // = mysql_select_db("数据库名");

$result = mysql_query("select / delect /updata /insert / desc /show tables /drop....");

desc  显示表的结构

select * from tab_xiaoshu;

数据的打印: $result = mysql_query("select * from tab_int2;"); while ($res = mysql_fetch_array($result)) { }

$result = mysql_query("select * from tab_int2;"); fatch函数的三种形式 mysql_fetch_assoc($result);  array('id'=>1,'name'=>'user1','age'=>18); mysql_fetch_row($result);  array('1'=>1,'2'=>'user1','3'=>18); mysql_fetch_array($result);  array('id'=>1,'name'=>'user1','age'=>18,'id'=>1,'name'=>'user1','age'=>18);

create table tab_temp1(id int,name varchar(10),age tinyint); insert into tab_temp1 values(1,'user1',18);

扩展php中操作mysql数据的几个函数: $n1 = mysql_num_rows($result); //获得该结果集的数据行数 $n2 = mysql_num_fields($result); //获得该结果集的数据列数 $name = mysql_field_name($result,$i); //获得该结果集的第i个字段的名字 i从0开始算起

字段类型

字符类型:

主要有  varchar类型  理论值。65535;  char   定长字符串:   比如:手机号,中国邮政编码   不够会补齐。

create table tab_char_varchar(  postcode char(6), /*邮政编码*/  name varchar(10) /*姓名*/ );

enum类型   单选项字符串数据类型。他非常适合于存储表单界面中的“单选项值”   enum("选项1","选项2",...);   实际内部:这些选项值对应的是如下数字值  set类型   单选项字符串数据类型。他非常适合于存储表单界面中的“多选项值”   set("选项1","选项2",...);   对应的数字是1,2,4,8,16

#演示enum,set的使用: create table enum_set(  id int auto_increment primary key,  sex enum('男','女'),  fav set('篮球','足球','中国足球','台球') );

#插如数据演示 insert into enum_set(id,sex,fav) values(null,'男','篮球'); insert into enum_set(id,sex,fav) values(null,1,1);

#多选项 insert into enum_set(id,sex,fav) values(null,'男','篮球,足球,台球'); insert into enum_set(id,sex,fav) values(null,'女',11);

text类型:     他成为“长文本”字符类型。通常,其中存储的数据不占表格中的数据限制。   其最长存储是65535字符。smalltext  longtext

其他  binary 类型 定长二进制字符串  varbinary 类型 变长二进制字符串  blob 类型 二进制数据类型,但是用于存储“图片”

时间类型:  datetime类型:   时间日期

date类型:   日期

time类型:   时间

year类型:   年份    timestamp:   时间戳类型:类似js中的GetTime(),或php中的Time(),他们都得到的是一个“整数数字”。 在应用中,时间日期类型,在我们自己给定的数据情况下,需要使用“单引号”引起来。

################################################### #示例代码 create table tab_time(  dt datetime,  d2 date,  t2 time,  y year,  ts timestamp );

##插入数据 insert into tab_time(dt,d2,t2,y)  values('2016/4/1 15:50:00','2016/4/1','15:50:00','2017');

insert into tab_time(dt,d2,t2,y)  values(now(),now(),now(),now());

基本语法形式: create table 【if not exists】 表明(字段名【,索引或约束列表】) 【表选项列表】; create table 【if not exists】 表明(字段1,字段2,....字段名【,索引1,索引2,...】) 【表选项1,表选项2,...】;

字段设定形式: 字段名 类型 【字段属性1 字段属性2 ....】

primary key:用于设定该字段为主键,此时该字段的值就可以“唯一确定”一行数据; unique key:设定该字段是“唯一的”,也就是不可重复的 not null: 用于设定该字段不能为空(null) 如果没有设定,则默认是可以为空的 default xx值:用于设定该字段的默认值。

#演示字段属性的使用 create table tab_shuxing(  id int auto_increment primary key,  user_name varchar(20) not null unique key,  password varchar(48) not null,  age tinyint default 18,  email varchar(50) comment '电子邮箱' );

#插入数据 insert into tab_shuxing (id ,user_name,password,age,email)values (1,'nunu1','123456',20,'nunu1@qq.com'); insert into tab_shuxing (id ,user_name,password,age,email)values (null,'nunu2',md5('123456'),null,'nunu2@qq.com'); insert into tab_shuxing (user_name,password,email)values ('nunu3',md5('654321'),'nunu3@qq.com');

select * from tab_shuxing;

索引:  指定一个表的某个或某些字段作为“索引数据字段”  形式为: 索引类型(要建立索引的字段名)  索引类型有: key(字段名);  #普通索引    含义:就是一个索引,只能加快查找速度    unique key(字段名); #唯一索引    含义:可以设定其字段的值不能重复(唯一性)    primary key(字段名); #主键索引    含义:具有区分该表中的任何一行数据的作用     唯一性可以为空 而主键索引不能为空    fulltext (字段名); #全文索引    foreign key (字段名) references其他表中的字段名; #外键索引

#演示索引创建语法: create table tab_suoyin(  id int auto_increment,  user_name varchar(20) ,  email varchar(50),  //age int, /*没有索引*/

key(email),  unique key(user_name),/*这就是唯一索引*/  primary key(id)/*这就是主键索引*/ );

外键: create table banji(  id int auto_increment primary key,  banjihao varchar(10) unique key comment '班级号',  banzhuren varchar(10) comment '班主任',  open_date date comment '开班日期' );

create table xuesheng(  stu_id int auto_increment primary key,  name varchar(10),  age tinyint,  banji_id int comment '班级id',  foreign key (banji_id) references banji(id) );

约束:

主键约束:primary key(字段名);

唯一约束:unique  key(字段名);

外键约束:foreign  key(字段名) references 其他表名;

检查约束:  create table tab1(   age tinyint,   check (age>=0 and age<100) /*这就是检查约束*/  );

表选项列表

charset = 要使用的字符编码 engine = 存储引擎(表类型) auto_increment = 设定当前的自增长字段的初始值 comment = 该表的一些说明文字

create table tab_xuanxiang(  id int auto_increment primary key,  name varchar(10),  age tinyint ) charset = gbk, engine = MyIsam, auto_increment = 1000, comment = '说明、、' ;

insert into tab_xuanxiang(id,name,age) values(null,'nnn',18);

修改表: 添加字段:alter table 表名 add [column] 新字段名 字段类型 [字段属性列表] 修改字段(并可改名):alter table 表名 change [column] 旧字段名 新字段名 新字段类型 [新字段属性列表] 删除字段:alter table 表名 drop [column] 字段名 添加普通索引:alter table 表名 add key [索引名] (字段名1,....) 添加唯一索引(约束):alter table 表名 add unique key [索引名] (字段名1,....) 添加主键索引(约束):alter table 表名 add primary key [索引名] (字段名1,....) 修改表名:alter table 表名 rename [to] 新表名;

#实例 alter table tab_xuanxiang add column email varchar(50); alter table tab_xuanxiang add key (age); /*添加一个普通索引*/

删除表: drop table [if exists] 表名;

从已有表复制表结构:create table 【if not exists】新表名 like 原表名;

desc tab_int;

创建视图: create view v1 as select id,age from tab_xuanxiang;

使用视图:当做一个表用就可以了

删除视图: drop view 【if exists】 视图名;

数据库MySQL技术-基础知识的更多相关文章

  1. Cisco路由技术基础知识详解

    第一部分 请写出568A的线序(接触网络第一天就应该会的,只要你掐过,想都能想出来) .网卡MAC地址长度是(  )个二进制位(16进制与2进制的换算关系,只是换种方式问,不用你拿笔去算) A.12  ...

  2. Mysql之基础知识笔记

    Mysql数据库基础知识个人笔记 连接本地数据库: mysql -h localhost -u root -p 回车输入数据库密码 数据库的基础操作: 查看当前所有的数据库:show database ...

  3. MySQL:基础知识

    基础知识 一.软件的生命周期 软件定义 软件开发 软件使用与维护 二.数据(Data) 1.定义 描述客观事物特征或性质的某种符号,经过数字化处理存储在计算机 2.数据独立性 物理独立性:指用户的应用 ...

  4. MySQL学习基础知识1

    什么是数据库? 数据库就是存储数据的仓库. 存储方式: 变量 无法永久存储 文件处理,可以永久存储,弊端:文件只能在自己的计算机读写,无法被分享(局域网除外) 数据库分类: 1.关系型数据库 提供某种 ...

  5. MySQL学习基础知识2

    1.基础语句 查 select(* | 字段名 | 四则运算 | 聚合函数) from 表名称; 加上as取别名 as可省略 如:select name, (math+english)/2 total ...

  6. php缓存技术基础知识

    普遍缓存技术 数据缓存:这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询 ...

  7. mysql笔记--基础知识

    SQL基础 SQL语句的分类: DQL: 数据库查询语句,基本的就是select查询命令,用于查询数据 DML: 数据操纵语句,用于插入,更新,删除数据,即INSERT, UPDATE,DELETE ...

  8. MSSQL数据库的一些基础知识

    转几个关于MSSQL数据库基础的文章: sql server系统表详细说明 SQL Server中系统数据库介绍 SQL Server中的角色(服务器级别和数据库级别角色)

  9. 关于mysql的基础知识

    一.数据库的简介 什么是数据库? 数据的仓库,如:在atm的实例中我们创建一个db目录称之为数据库 什么是 MySQL.Oracle.SQLite.Access.MS SQL Server等 ? 他们 ...

随机推荐

  1. Python爬虫之简单的图片获取

    简单的静态网页的图片获取: import urllib import re import os url = 'http://www.toutiao.com/a6467889113046450702/' ...

  2. insserv: warning: script 'lampp' missing LSB tags and overrides

    https://ubuntuforums.org/showthread.php?t=2327011 1.方法一,编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚 ...

  3. setState 是异步的

    1.解决 setState 异步问题 // 查询 handleSearch(e){ // 禁止默认行为 e.preventDefault(); // 获取 form 表单的值 this.setStat ...

  4. 浅谈MySQL压缩协议细节--从源码层面

    压缩协议属于mysql通讯协议的一部分,要启用压缩协议传输功能,前提条件客户端和服务端都必须要支持zlib算法,那么,现在有个问题,假如服务端已经默认开启压缩功能,那原生客户端在连接的时候要如何才可启 ...

  5. Windows7和Ubuntu12.04无法选择系统

    Windos7 旗舰版 Ubuntu12.04LTS 64位版本号 硬件挂载两个硬盘 SSD+机械 Windows7和Ubuntu12.04都装在SSD上.眼下先装好了Windows7,打算装Ubun ...

  6. mysql的binlog详解

    什么是binlogbinlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句.语句以“事件”的形式保存,它描述数据更改. binlog作用因为有了 ...

  7. Continuous integration: The answer to life, the universe, and everything?

    Continuous integration is not always the right answer. Here's why. https://techbeacon.com/continuous ...

  8. To verify Hadoop releases using GPG

    To verify Hadoop releases using GPG http://hadoop.apache.org/releases.html To verify Hadoop releases ...

  9. 定时任务Timer

    一.Timer介绍 java.util.Timer java.util.TimerTask Timer是一个定时器类,通过该类可以为指定的定时任务进行配置.TimerTask类是一个定时任务类,该类实 ...

  10. JAVA反射改动常量,以及其局限

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/barryhappy/article/details/24442953 问题,以及一个解决方式 今天公 ...