【MySQL】SQL语言概述
(一)SQL语言的五部分(1)数据查询语言(DQL) 基本结构select子句,from子句,where子句(2)数据操作语言(DML)对数据的增删改; 增添:insert 删除:delete 修改:updata(3)数据定义语言(DDL)创建、修改、删除(数据库、表、索引、视图、触发器、存储过程、函数) 创建:create 修改:alter 删除:drop(4)数据控制语言(DCL) 授予权限:grant 移除权限:revoke (5)事务控制语言(TCL)(类似于原子操作)(银行转账问题a->b +100 ; a -100, b+100 这个过程必须同时成功/失败) 开启事务:start transaction 提交事务:commit 回滚事务:rollback 注:上述的SQL语言大小写均可
【MySQL】Mysql、Navicat安装与常用Dos命令
(一)数据库系统:当我们学习数据库时,我们就是数据库管理员,通过数据库管理系统来操纵数据库。 (二)数据库类型 网状数据库(已被淘汰) 层次数据库(已被淘汰) 关系型数据库SQL(类似二维表格存储数据) mysql、Oracle、DB、SQL server 非关系型数据库NOSQL(键值对存放数据) MongDB、redis、HBase、Memcached (三)MySQL的优点 开源 跨平台 轻量级 成本低 (四)MySQL版本与安装详细安装教程 (五)基本使用(1)启动mysql服务管理员身份启动cmd 输入net start mysql (2)登录操作mysql -h主机名 -u用户名 -p密码 (4)查看数据库show databases; (5)创建数据库create database 数据库名; (6)使用数据库use 数据库名; (7)显示当前数据库中所有的表show tables; 新建的数据库,还没有表; (8)新建表create table 表名称(列名1 类型名1 列名1属性..., 列名2 类型名2 列名2属性...);创建个学生表试试 (9 ...
【Linux】bash命令解析器
(一)bash流程框架图: (二)代码实现 mybash.h 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#ifndef MYBASH_H#define MYBASH_H#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <sys/wait.h>#include <sys/types.h>#include <signal.h>#include <pwd.h>#include <sys/utsname.h>typedef enum returncode{ //地址空 ADDR_NULL = 0, //退出 1 EXIT, //cd 2 MYCD, //exec 3 EXEC}re ...
【Linux】进程替换
(一)进程替换 进程替换不会创建新的进程,进程PCB未发生改变,进程实体(数据代码内容)被替换 进程替换成功后不会执行替换函数下的代码,失败后会执行 进程替换成功不返回,失败后返回-1 (二)环境变量 环境变量的作用: 当使用shell来运行一个程序时,若没有加绝对路径,系统先会在当前路径下寻找该程序,若没找到就会去环境变量中去寻找该程序。都没找到就会报没有该指令的错误。 12345678jiege@ubuntu:~/Desktop/code/c$ pwd/home/jiege/Desktop/code/cjiege@ubuntu:~/Desktop/code/c$ which gcc/usr/bin/gccjiege@ubuntu:~/Desktop/code/c$ echo $PATH/home/jiege/tools/nodejs/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/binjiege@ubuntu:~/Desk ...
【Linux】库函数和系统调用
(一)系统调用和库函数概念: 系统调用:在内核空间中实现的函数,内核空间中执行(内核态) 库函数:在函数库中实现的函数,用户空间执行(用户态) (二)用户空间和内核空间 (三)当调用系统调用都发生了什么??当一个进程在用户空间执行系统调用时,将系统调用号写入eax寄存器并触发0x80中断,此时系统对该程序进行现场保护,CPU停止执行该进程用户空间的代码,进程会从运行态——>阻塞态,系统会让内核执行,内核通过读取eax寄存器中的调用号查询系统调用表,来执行对应的系统调用的内核代码(可能会访问PCB中的信息),内核代码执行完毕后,会进行现场恢复。 通过调用open系统调用加深理解: 用户空间代码调用open系统调用 将系统调用号写入eax寄存器中,并触发0x80中断 系统对用户空间代码数据进行现场保护 进程状态从运行态转成阻塞态 内核从eax得到系统调用号,内核通过查询系统调用表得到内核代码(内核代码执行会访问用户空间的文件表,查询最小的文件描述符,再进行对open的文件分配文件描述符,最终返回写入用户空间的文件表中) 内核代码执行完毕,恢复现场 (四)printf库函数 ...
【C++】C++多态
1.什么是多态答:(要点)(1)静多态 早绑定 函数重载、模板(编译时期的多态)(2)动多态 晚绑定 主要表现在继承中的多态 运行时期确定 详细回答: C++中多态分为两种,静态多态和动态多态。静态多态主要是指函数重载、模板的多态,在编译阶段就已经确定该调用那个函数、确定模板的参数类型,也称为早绑定;动态多态主要是指在运行期间发生的多多态,也称晚绑定,主要是在继承上的多态,由于子类重写父类的虚函数,即子类的成员方法指针覆盖了父类的成员方法指针,最后使用父类指针或者引用调用虚函数时发生多态。 2.动多态的必须条件,动多态的调用过程答: 动多态的必须条件: 基类必须有虚函数,派生类重写父类虚函数; 其次有基类指针或者基类引用指向派生类对象; 最后该指针或者引用调用虚函数。 对象必须完整(构造之后,析构之前) 动多态的调用过程: 指针/引用调用虚函数 通过vfptr(虚函数指针)找到vftable(虚函数表) 在vftable(虚函数表中)找到对应的函数指针 调用该函数指针 3.什么情况下析构函数必须写成虚函数答:父类指针指向堆上的子类对象,delete父类指针的时候,防止未调用子类 ...